diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -46,7 +46,7 @@
android:label="@string/app_name"
android:networkSecurityConfig="@xml/networks_security_config"
android:roundIcon="@mipmap/ic_launcher_round"
- android:theme="@style/AppTheme.NoActionBar">
+ android:theme="@style/AppThemeDayNight.NoActionBar">
+ android:theme="@style/AppThemeDayNight.NoActionBar">
diff --git a/app/src/main/assets/versatiles_eclipse_neutral_to90.json b/app/src/main/assets/versatiles_eclipse_neutral_to90.json
new file mode 100644
--- /dev/null
+++ b/app/src/main/assets/versatiles_eclipse_neutral_to90.json
@@ -0,0 +1,18184 @@
+{
+ "version": 8,
+ "name": "versatiles-eclipse",
+ "metadata": {
+ "license": "https://creativecommons.org/publicdomain/zero/1.0/",
+ "maputnik:renderer": "mlgljs"
+ },
+ "sources": {
+ "versatiles-shortbread": {
+ "attribution": "© OpenStreetMap contributors",
+ "tiles": [
+ "https://tiles.versatiles.org/tiles/osm/{z}/{x}/{y}"
+ ],
+ "type": "vector",
+ "scheme": "xyz",
+ "bounds": [
+ -180,
+ -85.0511287798066,
+ 180,
+ 85.0511287798066
+ ],
+ "minzoom": 0,
+ "maxzoom": 14
+ }
+ },
+ "sprite": [
+ {
+ "id": "basics",
+ "url": "https://tiles.versatiles.org/assets/sprites/basics/sprites"
+ }
+ ],
+ "glyphs": "https://tiles.versatiles.org/assets/glyphs/{fontstack}/{range}.pbf",
+ "layers": [
+ {
+ "id": "background",
+ "type": "background",
+ "paint": {
+ "background-color": "hsl(33,43.2%,4.8%)"
+ }
+ },
+ {
+ "id": "water-ocean",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "ocean",
+ "paint": {
+ "fill-color": "hsl(205,69%,15%)"
+ }
+ },
+ {
+ "id": "land-glacier",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "water_polygons",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "glacier"
+ ]
+ ],
+ "paint": {
+ "fill-color": "hsl(0,0%,0%)"
+ }
+ },
+ {
+ "id": "land-commercial",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "land",
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "commercial",
+ "retail"
+ ]
+ ],
+ "paint": {
+ "fill-color": "hsla(324,61%,8%,0.251)",
+ "fill-opacity": {
+ "stops": [
+ [
+ 10,
+ 0
+ ],
+ [
+ 11,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "land-industrial",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "land",
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "industrial",
+ "quarry",
+ "railway"
+ ]
+ ],
+ "paint": {
+ "fill-color": "hsla(49,90.0%,11.4%,0.333)",
+ "fill-opacity": {
+ "stops": [
+ [
+ 10,
+ 0
+ ],
+ [
+ 11,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "land-residential",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "land",
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "garages",
+ "residential"
+ ]
+ ],
+ "paint": {
+ "fill-color": "hsla(33,16.2%,9.5%,0.2)",
+ "fill-opacity": {
+ "stops": [
+ [
+ 10,
+ 0
+ ],
+ [
+ 11,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "land-agriculture",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "land",
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "brownfield",
+ "farmland",
+ "farmyard",
+ "greenfield",
+ "greenhouse_horticulture",
+ "orchard",
+ "plant_nursery",
+ "vineyard"
+ ]
+ ],
+ "paint": {
+ "fill-color": "hsl(43,45.9%,11.4%)",
+ "fill-opacity": {
+ "stops": [
+ [
+ 10,
+ 0
+ ],
+ [
+ 11,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "land-waste",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "land",
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "landfill"
+ ]
+ ],
+ "paint": {
+ "fill-color": "hsl(50,26.1%,19.0%)",
+ "fill-opacity": {
+ "stops": [
+ [
+ 10,
+ 0
+ ],
+ [
+ 11,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "land-park",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "land",
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "park",
+ "village_green",
+ "recreation_ground"
+ ]
+ ],
+ "paint": {
+ "fill-color": "hsl(60,36.9%,23.8%)",
+ "fill-opacity": {
+ "stops": [
+ [
+ 11,
+ 0
+ ],
+ [
+ 12,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "land-garden",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "land",
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "allotments",
+ "garden"
+ ]
+ ],
+ "paint": {
+ "fill-color": "hsl(60,36.9%,23.8%)",
+ "fill-opacity": {
+ "stops": [
+ [
+ 11,
+ 0
+ ],
+ [
+ 12,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "land-burial",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "land",
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "cemetery",
+ "grave_yard"
+ ]
+ ],
+ "paint": {
+ "fill-color": "hsl(54,19.8%,16.1%)",
+ "fill-opacity": {
+ "stops": [
+ [
+ 13,
+ 0
+ ],
+ [
+ 14,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "land-leisure",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "land",
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "miniature_golf",
+ "playground",
+ "golf_course"
+ ]
+ ],
+ "paint": {
+ "fill-color": "hsl(84,29%,10%)"
+ }
+ },
+ {
+ "id": "land-rock",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "land",
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "bare_rock",
+ "scree",
+ "shingle"
+ ]
+ ],
+ "paint": {
+ "fill-color": "hsl(192,9%,11%)"
+ }
+ },
+ {
+ "id": "land-forest",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "land",
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "forest"
+ ]
+ ],
+ "paint": {
+ "fill-color": "hsl(100,43%,53%)",
+ "fill-opacity": {
+ "stops": [
+ [
+ 7,
+ 0
+ ],
+ [
+ 8,
+ 0.1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "land-grass",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "land",
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "grass",
+ "grassland",
+ "meadow",
+ "wet_meadow"
+ ]
+ ],
+ "paint": {
+ "fill-color": "hsl(90,41%,15%)",
+ "fill-opacity": {
+ "stops": [
+ [
+ 11,
+ 0
+ ],
+ [
+ 12,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "land-vegetation",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "land",
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "heath",
+ "scrub"
+ ]
+ ],
+ "paint": {
+ "fill-color": "hsl(60,36.9%,23.8%)",
+ "fill-opacity": {
+ "stops": [
+ [
+ 11,
+ 0
+ ],
+ [
+ 12,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "land-sand",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "land",
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "beach",
+ "sand"
+ ]
+ ],
+ "paint": {
+ "fill-color": "hsl(60,51.3%,4.8%)"
+ }
+ },
+ {
+ "id": "land-wetland",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "land",
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "bog",
+ "marsh",
+ "string_bog",
+ "swamp"
+ ]
+ ],
+ "paint": {
+ "fill-color": "hsl(145,28%,14%)"
+ }
+ },
+ {
+ "id": "water-river",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "water_lines",
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "river"
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ]
+ ],
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "hsl(205,69%,15%)",
+ "line-width": {
+ "stops": [
+ [
+ 9,
+ 0
+ ],
+ [
+ 10,
+ 3
+ ],
+ [
+ 15,
+ 5
+ ],
+ [
+ 17,
+ 9
+ ],
+ [
+ 18,
+ 20
+ ],
+ [
+ 20,
+ 60
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "water-canal",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "water_lines",
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "canal"
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ]
+ ],
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "hsl(205,69%,15%)",
+ "line-width": {
+ "stops": [
+ [
+ 9,
+ 0
+ ],
+ [
+ 10,
+ 2
+ ],
+ [
+ 15,
+ 4
+ ],
+ [
+ 17,
+ 8
+ ],
+ [
+ 18,
+ 17
+ ],
+ [
+ 20,
+ 50
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "water-stream",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "water_lines",
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "stream"
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ]
+ ],
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "hsl(205,69%,15%)",
+ "line-width": {
+ "stops": [
+ [
+ 13,
+ 0
+ ],
+ [
+ 14,
+ 1
+ ],
+ [
+ 15,
+ 2
+ ],
+ [
+ 17,
+ 6
+ ],
+ [
+ 18,
+ 12
+ ],
+ [
+ 20,
+ 30
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "water-ditch",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "water_lines",
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "ditch"
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ]
+ ],
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "hsl(205,69%,15%)",
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 0
+ ],
+ [
+ 15,
+ 1
+ ],
+ [
+ 17,
+ 4
+ ],
+ [
+ 18,
+ 8
+ ],
+ [
+ 20,
+ 20
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "water-area",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "water_polygons",
+ "filter": [
+ "==",
+ "kind",
+ "water"
+ ],
+ "paint": {
+ "fill-color": "hsl(205,69%,15%)",
+ "fill-opacity": {
+ "stops": [
+ [
+ 4,
+ 0
+ ],
+ [
+ 6,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "water-area-river",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "water_polygons",
+ "filter": [
+ "==",
+ "kind",
+ "river"
+ ],
+ "paint": {
+ "fill-color": "hsl(205,69%,15%)",
+ "fill-opacity": {
+ "stops": [
+ [
+ 4,
+ 0
+ ],
+ [
+ 6,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "water-area-small",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "water_polygons",
+ "filter": [
+ "in",
+ "kind",
+ "reservoir",
+ "basin",
+ "dock"
+ ],
+ "paint": {
+ "fill-color": "hsl(205,69%,15%)",
+ "fill-opacity": {
+ "stops": [
+ [
+ 4,
+ 0
+ ],
+ [
+ 6,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "water-dam-area",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "dam_polygons",
+ "filter": [
+ "==",
+ "kind",
+ "dam"
+ ],
+ "paint": {
+ "fill-color": "hsl(33,43.2%,4.8%)",
+ "fill-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "water-dam",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "dam_lines",
+ "filter": [
+ "==",
+ "kind",
+ "dam"
+ ],
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "hsl(205,69%,15%)"
+ }
+ },
+ {
+ "id": "water-pier-area",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "pier_polygons",
+ "filter": [
+ "in",
+ "kind",
+ "pier",
+ "breakwater",
+ "groyne"
+ ],
+ "paint": {
+ "fill-color": "hsl(33,43.2%,4.8%)",
+ "fill-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "water-pier",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "pier_lines",
+ "filter": [
+ "in",
+ "kind",
+ "pier",
+ "breakwater",
+ "groyne"
+ ],
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "hsl(33,43.2%,4.8%)"
+ }
+ },
+ {
+ "id": "site-dangerarea",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "sites",
+ "filter": [
+ "in",
+ "kind",
+ "danger_area"
+ ],
+ "paint": {
+ "fill-color": "hsl(0,100%,50%)",
+ "fill-outline-color": "hsl(0,100%,50%)",
+ "fill-opacity": 0.3,
+ "fill-pattern": "basics:pattern-warning"
+ }
+ },
+ {
+ "id": "site-university",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "sites",
+ "filter": [
+ "in",
+ "kind",
+ "university"
+ ],
+ "paint": {
+ "fill-color": "hsl(60,90.0%,23.8%)",
+ "fill-opacity": 0.1
+ }
+ },
+ {
+ "id": "site-college",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "sites",
+ "filter": [
+ "in",
+ "kind",
+ "college"
+ ],
+ "paint": {
+ "fill-color": "hsl(60,90.0%,23.8%)",
+ "fill-opacity": 0.1
+ }
+ },
+ {
+ "id": "site-school",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "sites",
+ "filter": [
+ "in",
+ "kind",
+ "school"
+ ],
+ "paint": {
+ "fill-color": "hsl(60,90.0%,23.8%)",
+ "fill-opacity": 0.1
+ }
+ },
+ {
+ "id": "site-hospital",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "sites",
+ "filter": [
+ "in",
+ "kind",
+ "hospital"
+ ],
+ "paint": {
+ "fill-color": "hsl(0,100%,30%)",
+ "fill-opacity": 0.1
+ }
+ },
+ {
+ "id": "site-prison",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "sites",
+ "filter": [
+ "in",
+ "kind",
+ "prison"
+ ],
+ "paint": {
+ "fill-color": "hsl(305,73%,3%)",
+ "fill-pattern": "basics:pattern-striped",
+ "fill-opacity": 0.1
+ }
+ },
+ {
+ "id": "site-parking",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "sites",
+ "filter": [
+ "in",
+ "kind",
+ "parking"
+ ],
+ "paint": {
+ "fill-color": "hsl(24,9.9%,8.5%)"
+ }
+ },
+ {
+ "id": "site-bicycleparking",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "sites",
+ "filter": [
+ "in",
+ "kind",
+ "bicycle_parking"
+ ],
+ "paint": {
+ "fill-color": "hsl(24,9.9%,8.5%)"
+ }
+ },
+ {
+ "id": "site-construction",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "sites",
+ "filter": [
+ "in",
+ "kind",
+ "construction"
+ ],
+ "paint": {
+ "fill-color": "hsl(0,0%,34%)",
+ "fill-pattern": "basics:pattern-hatched_thin",
+ "fill-opacity": 0.1
+ }
+ },
+ {
+ "id": "airport-area",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "street_polygons",
+ "filter": [
+ "in",
+ "kind",
+ "runway",
+ "taxiway"
+ ],
+ "paint": {
+ "fill-color": "hsl(0,0%,0%)",
+ "fill-opacity": 0.5
+ }
+ },
+ {
+ "id": "airport-taxiway:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "==",
+ "kind",
+ "taxiway"
+ ],
+ "layout": {
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "hsl(36,5%,20%)",
+ "line-width": {
+ "stops": [
+ [
+ 13,
+ 0
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 15,
+ 10
+ ],
+ [
+ 16,
+ 14
+ ],
+ [
+ 18,
+ 20
+ ],
+ [
+ 20,
+ 40
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "airport-runway:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "==",
+ "kind",
+ "runway"
+ ],
+ "layout": {
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "hsl(36,5%,20%)",
+ "line-width": {
+ "stops": [
+ [
+ 11,
+ 0
+ ],
+ [
+ 12,
+ 6
+ ],
+ [
+ 13,
+ 9
+ ],
+ [
+ 14,
+ 16
+ ],
+ [
+ 15,
+ 24
+ ],
+ [
+ 16,
+ 40
+ ],
+ [
+ 17,
+ 100
+ ],
+ [
+ 18,
+ 160
+ ],
+ [
+ 20,
+ 300
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "airport-taxiway",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "==",
+ "kind",
+ "taxiway"
+ ],
+ "layout": {
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "hsl(0,0%,0%)",
+ "line-width": {
+ "stops": [
+ [
+ 13,
+ 0
+ ],
+ [
+ 14,
+ 1
+ ],
+ [
+ 15,
+ 8
+ ],
+ [
+ 16,
+ 12
+ ],
+ [
+ 18,
+ 18
+ ],
+ [
+ 20,
+ 36
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 13,
+ 0
+ ],
+ [
+ 14,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "airport-runway",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "==",
+ "kind",
+ "runway"
+ ],
+ "layout": {
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "hsl(0,0%,0%)",
+ "line-width": {
+ "stops": [
+ [
+ 11,
+ 0
+ ],
+ [
+ 12,
+ 5
+ ],
+ [
+ 13,
+ 8
+ ],
+ [
+ 14,
+ 14
+ ],
+ [
+ 15,
+ 22
+ ],
+ [
+ 16,
+ 38
+ ],
+ [
+ 17,
+ 98
+ ],
+ [
+ 18,
+ 158
+ ],
+ [
+ 20,
+ 298
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 11,
+ 0
+ ],
+ [
+ 12,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "building:outline",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "buildings",
+ "paint": {
+ "fill-color": "hsl(30,9.9%,13.3%)",
+ "fill-opacity": {
+ "stops": [
+ [
+ 14,
+ 0
+ ],
+ [
+ 15,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "building",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "buildings",
+ "paint": {
+ "fill-color": "hsl(30,34.2%,7.6%)",
+ "fill-opacity": {
+ "stops": [
+ [
+ 14,
+ 0
+ ],
+ [
+ 15,
+ 1
+ ]
+ ]
+ },
+ "fill-translate": [
+ -2,
+ -2
+ ]
+ }
+ },
+ {
+ "id": "tunnel-street-pedestrian-zone",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "street_polygons",
+ "filter": [
+ "all",
+ [
+ "==",
+ "tunnel",
+ true
+ ],
+ [
+ "==",
+ "kind",
+ "pedestrian"
+ ]
+ ],
+ "paint": {
+ "fill-color": "rgb(8,8,8)",
+ "fill-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-way-footway:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "==",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "footway"
+ ]
+ ],
+ "layout": {
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 7
+ ],
+ [
+ 19,
+ 12
+ ],
+ [
+ 20,
+ 22
+ ]
+ ]
+ },
+ "line-color": "hsl(288,13%,14%)"
+ }
+ },
+ {
+ "id": "tunnel-way-steps:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "==",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "steps"
+ ]
+ ],
+ "layout": {
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 7
+ ],
+ [
+ 19,
+ 12
+ ],
+ [
+ 20,
+ 22
+ ]
+ ]
+ },
+ "line-color": "hsl(288,13%,14%)"
+ }
+ },
+ {
+ "id": "tunnel-way-path:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "==",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "path"
+ ]
+ ],
+ "layout": {
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 7
+ ],
+ [
+ 19,
+ 12
+ ],
+ [
+ 20,
+ 22
+ ]
+ ]
+ },
+ "line-color": "hsl(288,13%,14%)"
+ }
+ },
+ {
+ "id": "tunnel-way-cycleway:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "==",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "cycleway"
+ ]
+ ],
+ "layout": {
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 7
+ ],
+ [
+ 19,
+ 12
+ ],
+ [
+ 20,
+ 22
+ ]
+ ]
+ },
+ "line-color": "hsl(203,11%,13%)"
+ }
+ },
+ {
+ "id": "tunnel-street-track:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "track"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "rgb(33,33,33)",
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 4
+ ],
+ [
+ 18,
+ 18
+ ],
+ [
+ 19,
+ 48
+ ],
+ [
+ 20,
+ 96
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 14,
+ 0
+ ],
+ [
+ 15,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-pedestrian:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "pedestrian"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "rgb(33,33,33)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 2
+ ],
+ [
+ 14,
+ 3
+ ],
+ [
+ 16,
+ 6
+ ],
+ [
+ 18,
+ 26
+ ],
+ [
+ 19,
+ 64
+ ],
+ [
+ 20,
+ 128
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-service:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "service"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "rgb(37,36,34)",
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 1
+ ],
+ [
+ 16,
+ 3
+ ],
+ [
+ 18,
+ 12
+ ],
+ [
+ 19,
+ 32
+ ],
+ [
+ 20,
+ 48
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-livingstreet:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "living_street"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "rgb(33,33,33)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 2
+ ],
+ [
+ 14,
+ 3
+ ],
+ [
+ 16,
+ 6
+ ],
+ [
+ 18,
+ 26
+ ],
+ [
+ 19,
+ 64
+ ],
+ [
+ 20,
+ 128
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-residential:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "residential"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "rgb(33,33,33)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 2
+ ],
+ [
+ 14,
+ 3
+ ],
+ [
+ 16,
+ 6
+ ],
+ [
+ 18,
+ 26
+ ],
+ [
+ 19,
+ 64
+ ],
+ [
+ 20,
+ 128
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-unclassified:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "unclassified"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "rgb(33,33,33)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 2
+ ],
+ [
+ 14,
+ 3
+ ],
+ [
+ 16,
+ 6
+ ],
+ [
+ 18,
+ 26
+ ],
+ [
+ 19,
+ 64
+ ],
+ [
+ 20,
+ 128
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-busway:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "busway"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "rgb(37,36,34)",
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 1
+ ],
+ [
+ 16,
+ 3
+ ],
+ [
+ 18,
+ 12
+ ],
+ [
+ 19,
+ 32
+ ],
+ [
+ 20,
+ 48
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-busguideway:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "bus_guideway"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "rgb(37,36,34)",
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 1
+ ],
+ [
+ 16,
+ 3
+ ],
+ [
+ 18,
+ 12
+ ],
+ [
+ 19,
+ 32
+ ],
+ [
+ 20,
+ 48
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-tertiary-link:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "tertiary"
+ ],
+ [
+ "==",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "rgb(33,33,33)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 2
+ ],
+ [
+ 14,
+ 3
+ ],
+ [
+ 16,
+ 6
+ ],
+ [
+ 18,
+ 26
+ ],
+ [
+ 19,
+ 64
+ ],
+ [
+ 20,
+ 128
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-secondary-link:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "==",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "secondary"
+ ],
+ [
+ "==",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "rgb(117,68,25)",
+ "line-dasharray": [
+ 1,
+ 0.3
+ ],
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 2
+ ],
+ [
+ 14,
+ 3
+ ],
+ [
+ 16,
+ 7
+ ],
+ [
+ 18,
+ 14
+ ],
+ [
+ 20,
+ 40
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-primary-link:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "==",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "primary"
+ ],
+ [
+ "==",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "rgb(117,68,25)",
+ "line-dasharray": [
+ 1,
+ 0.3
+ ],
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 2
+ ],
+ [
+ 14,
+ 3
+ ],
+ [
+ 16,
+ 7
+ ],
+ [
+ 18,
+ 14
+ ],
+ [
+ 20,
+ 40
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-trunk-link:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "==",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "trunk"
+ ],
+ [
+ "==",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "rgb(117,68,25)",
+ "line-dasharray": [
+ 1,
+ 0.3
+ ],
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 2
+ ],
+ [
+ 14,
+ 3
+ ],
+ [
+ 16,
+ 7
+ ],
+ [
+ 18,
+ 14
+ ],
+ [
+ 20,
+ 40
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-motorway-link:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ [
+ "==",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "motorway"
+ ],
+ [
+ "==",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "rgb(117,68,25)",
+ "line-dasharray": [
+ 1,
+ 0.3
+ ],
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 2
+ ],
+ [
+ 14,
+ 3
+ ],
+ [
+ 16,
+ 7
+ ],
+ [
+ 18,
+ 14
+ ],
+ [
+ 20,
+ 40
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-tertiary:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "tertiary"
+ ],
+ [
+ "!=",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "rgb(33,33,33)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 2
+ ],
+ [
+ 14,
+ 3
+ ],
+ [
+ 16,
+ 6
+ ],
+ [
+ 18,
+ 26
+ ],
+ [
+ 19,
+ 64
+ ],
+ [
+ 20,
+ 128
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-secondary:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "secondary"
+ ],
+ [
+ "!=",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "rgb(117,68,25)",
+ "line-dasharray": [
+ 1,
+ 0.3
+ ],
+ "line-width": {
+ "stops": [
+ [
+ 11,
+ 2
+ ],
+ [
+ 14,
+ 5
+ ],
+ [
+ 16,
+ 8
+ ],
+ [
+ 18,
+ 30
+ ],
+ [
+ 19,
+ 68
+ ],
+ [
+ 20,
+ 138
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 11,
+ 0
+ ],
+ [
+ 12,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-primary:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "primary"
+ ],
+ [
+ "!=",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "rgb(117,68,25)",
+ "line-dasharray": [
+ 1,
+ 0.3
+ ],
+ "line-width": {
+ "stops": [
+ [
+ 8,
+ 0
+ ],
+ [
+ 9,
+ 1
+ ],
+ [
+ 10,
+ 4
+ ],
+ [
+ 14,
+ 6
+ ],
+ [
+ 16,
+ 12
+ ],
+ [
+ 18,
+ 36
+ ],
+ [
+ 19,
+ 74
+ ],
+ [
+ 20,
+ 144
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-trunk:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "trunk"
+ ],
+ [
+ "!=",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "rgb(117,68,25)",
+ "line-dasharray": [
+ 1,
+ 0.3
+ ],
+ "line-width": {
+ "stops": [
+ [
+ 6,
+ 0
+ ],
+ [
+ 7,
+ 2
+ ],
+ [
+ 10,
+ 4
+ ],
+ [
+ 14,
+ 6
+ ],
+ [
+ 16,
+ 12
+ ],
+ [
+ 18,
+ 36
+ ],
+ [
+ 19,
+ 74
+ ],
+ [
+ 20,
+ 144
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-motorway:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "motorway"
+ ],
+ [
+ "!=",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "rgb(117,68,25)",
+ "line-dasharray": [
+ 1,
+ 0.3
+ ],
+ "line-width": {
+ "stops": [
+ [
+ 5,
+ 0
+ ],
+ [
+ 6,
+ 2
+ ],
+ [
+ 10,
+ 5
+ ],
+ [
+ 14,
+ 5
+ ],
+ [
+ 16,
+ 14
+ ],
+ [
+ 18,
+ 38
+ ],
+ [
+ 19,
+ 84
+ ],
+ [
+ 20,
+ 168
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-way-footway",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "==",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "footway"
+ ]
+ ],
+ "layout": {
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 4
+ ],
+ [
+ 18,
+ 6
+ ],
+ [
+ 19,
+ 10
+ ],
+ [
+ 20,
+ 20
+ ]
+ ]
+ },
+ "line-color": "hsl(288,33%,6%)",
+ "line-dasharray": [
+ 1,
+ 0.2
+ ]
+ }
+ },
+ {
+ "id": "tunnel-way-steps",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "==",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "steps"
+ ]
+ ],
+ "layout": {
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 4
+ ],
+ [
+ 18,
+ 6
+ ],
+ [
+ 19,
+ 10
+ ],
+ [
+ 20,
+ 20
+ ]
+ ]
+ },
+ "line-color": "hsl(288,33%,6%)",
+ "line-dasharray": [
+ 1,
+ 0.2
+ ]
+ }
+ },
+ {
+ "id": "tunnel-way-path",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "==",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "path"
+ ]
+ ],
+ "layout": {
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 4
+ ],
+ [
+ 18,
+ 6
+ ],
+ [
+ 19,
+ 10
+ ],
+ [
+ 20,
+ 20
+ ]
+ ]
+ },
+ "line-color": "hsl(288,33%,6%)",
+ "line-dasharray": [
+ 1,
+ 0.2
+ ]
+ }
+ },
+ {
+ "id": "tunnel-way-cycleway",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "==",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "cycleway"
+ ]
+ ],
+ "layout": {
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 4
+ ],
+ [
+ 18,
+ 6
+ ],
+ [
+ 19,
+ 10
+ ],
+ [
+ 20,
+ 20
+ ]
+ ]
+ },
+ "line-color": "hsl(203,30%,5%)",
+ "line-dasharray": [
+ 1,
+ 0.2
+ ]
+ }
+ },
+ {
+ "id": "tunnel-street-track",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "track"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "rgb(8,8,8)",
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 1
+ ],
+ [
+ 16,
+ 3
+ ],
+ [
+ 18,
+ 16
+ ],
+ [
+ 19,
+ 44
+ ],
+ [
+ 20,
+ 88
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 14,
+ 0
+ ],
+ [
+ 15,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-pedestrian",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "pedestrian"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "rgb(8,8,8)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 24
+ ],
+ [
+ 19,
+ 60
+ ],
+ [
+ 20,
+ 120
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-service",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "service"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "rgb(8,8,8)",
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 1
+ ],
+ [
+ 16,
+ 2
+ ],
+ [
+ 18,
+ 10
+ ],
+ [
+ 19,
+ 28
+ ],
+ [
+ 20,
+ 40
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-livingstreet",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "living_street"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "rgb(8,8,8)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 24
+ ],
+ [
+ 19,
+ 60
+ ],
+ [
+ 20,
+ 120
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-residential",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "residential"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "rgb(8,8,8)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 24
+ ],
+ [
+ 19,
+ 60
+ ],
+ [
+ 20,
+ 120
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-unclassified",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "unclassified"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "rgb(8,8,8)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 24
+ ],
+ [
+ 19,
+ 60
+ ],
+ [
+ 20,
+ 120
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-busway",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "busway"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "rgb(8,8,8)",
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 1
+ ],
+ [
+ 16,
+ 2
+ ],
+ [
+ 18,
+ 10
+ ],
+ [
+ 19,
+ 28
+ ],
+ [
+ 20,
+ 40
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-busguideway",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "bus_guideway"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "rgb(8,8,8)",
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 1
+ ],
+ [
+ 16,
+ 2
+ ],
+ [
+ 18,
+ 10
+ ],
+ [
+ 19,
+ 28
+ ],
+ [
+ 20,
+ 40
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-track-bicycle",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "track"
+ ],
+ [
+ "==",
+ "bicycle",
+ "designated"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "rgb(8,8,8)"
+ }
+ },
+ {
+ "id": "tunnel-street-pedestrian-bicycle",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "pedestrian"
+ ],
+ [
+ "==",
+ "bicycle",
+ "designated"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(203,100%,3%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 24
+ ],
+ [
+ 19,
+ 60
+ ],
+ [
+ 20,
+ 120
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-service-bicycle",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "service"
+ ],
+ [
+ "==",
+ "bicycle",
+ "designated"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "rgb(8,8,8)"
+ }
+ },
+ {
+ "id": "tunnel-street-livingstreet-bicycle",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "living_street"
+ ],
+ [
+ "==",
+ "bicycle",
+ "designated"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(203,100%,3%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 24
+ ],
+ [
+ 19,
+ 60
+ ],
+ [
+ 20,
+ 120
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-residential-bicycle",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "residential"
+ ],
+ [
+ "==",
+ "bicycle",
+ "designated"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(203,100%,3%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 24
+ ],
+ [
+ 19,
+ 60
+ ],
+ [
+ 20,
+ 120
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-unclassified-bicycle",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "unclassified"
+ ],
+ [
+ "==",
+ "bicycle",
+ "designated"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(203,100%,3%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 24
+ ],
+ [
+ 19,
+ 60
+ ],
+ [
+ 20,
+ 120
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-tertiary-link",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "tertiary"
+ ],
+ [
+ "==",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "rgb(8,8,8)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 24
+ ],
+ [
+ 19,
+ 60
+ ],
+ [
+ 20,
+ 120
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-secondary-link",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "==",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "secondary"
+ ],
+ [
+ "==",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "rgb(69,56,4)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 12
+ ],
+ [
+ 20,
+ 38
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-primary-link",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "==",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "primary"
+ ],
+ [
+ "==",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "rgb(69,56,4)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 12
+ ],
+ [
+ 20,
+ 38
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-trunk-link",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "==",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "trunk"
+ ],
+ [
+ "==",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "rgb(69,56,4)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 12
+ ],
+ [
+ 20,
+ 38
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-motorway-link",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ [
+ "==",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "motorway"
+ ],
+ [
+ "==",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "rgb(97,57,5)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 12
+ ],
+ [
+ 20,
+ 38
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-tertiary",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "tertiary"
+ ],
+ [
+ "!=",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "rgb(8,8,8)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 24
+ ],
+ [
+ 19,
+ 60
+ ],
+ [
+ 20,
+ 120
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-secondary",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "secondary"
+ ],
+ [
+ "!=",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "rgb(69,56,4)",
+ "line-width": {
+ "stops": [
+ [
+ 11,
+ 1
+ ],
+ [
+ 14,
+ 4
+ ],
+ [
+ 16,
+ 6
+ ],
+ [
+ 18,
+ 28
+ ],
+ [
+ 19,
+ 64
+ ],
+ [
+ 20,
+ 130
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 11,
+ 0
+ ],
+ [
+ 12,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-primary",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "primary"
+ ],
+ [
+ "!=",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "rgb(69,56,4)",
+ "line-width": {
+ "stops": [
+ [
+ 8,
+ 0
+ ],
+ [
+ 9,
+ 2
+ ],
+ [
+ 10,
+ 3
+ ],
+ [
+ 14,
+ 5
+ ],
+ [
+ 16,
+ 10
+ ],
+ [
+ 18,
+ 34
+ ],
+ [
+ 19,
+ 70
+ ],
+ [
+ 20,
+ 140
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 8,
+ 0
+ ],
+ [
+ 9,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-trunk",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "trunk"
+ ],
+ [
+ "!=",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "rgb(69,56,4)",
+ "line-width": {
+ "stops": [
+ [
+ 6,
+ 0
+ ],
+ [
+ 7,
+ 1
+ ],
+ [
+ 10,
+ 3
+ ],
+ [
+ 14,
+ 5
+ ],
+ [
+ 16,
+ 10
+ ],
+ [
+ 18,
+ 34
+ ],
+ [
+ 19,
+ 70
+ ],
+ [
+ 20,
+ 140
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 6,
+ 0
+ ],
+ [
+ 7,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street-motorway",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "motorway"
+ ],
+ [
+ "!=",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "rgb(97,57,5)",
+ "line-width": {
+ "stops": [
+ [
+ 5,
+ 0
+ ],
+ [
+ 6,
+ 1
+ ],
+ [
+ 10,
+ 4
+ ],
+ [
+ 14,
+ 4
+ ],
+ [
+ 16,
+ 12
+ ],
+ [
+ 18,
+ 36
+ ],
+ [
+ 19,
+ 80
+ ],
+ [
+ 20,
+ 160
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 5,
+ 0
+ ],
+ [
+ 6,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-transport-tram:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "tram"
+ ],
+ [
+ "!has",
+ "service"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "hsl(208,14%,27%)",
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 7
+ ],
+ [
+ 20,
+ 20
+ ]
+ ]
+ },
+ "line-dasharray": [
+ 0.1,
+ 0.5
+ ]
+ }
+ },
+ {
+ "id": "tunnel-transport-narrowgauge:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "narrow_gauge"
+ ],
+ [
+ "!has",
+ "service"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "hsl(208,14%,27%)",
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 7
+ ],
+ [
+ 20,
+ 20
+ ]
+ ]
+ },
+ "line-dasharray": [
+ 0.1,
+ 0.5
+ ]
+ }
+ },
+ {
+ "id": "tunnel-transport-subway:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "subway"
+ ],
+ [
+ "!has",
+ "service"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "hsl(207,23%,28%)",
+ "line-width": {
+ "stops": [
+ [
+ 11,
+ 0
+ ],
+ [
+ 12,
+ 1
+ ],
+ [
+ 15,
+ 3
+ ],
+ [
+ 16,
+ 3
+ ],
+ [
+ 18,
+ 6
+ ],
+ [
+ 19,
+ 8
+ ],
+ [
+ 20,
+ 10
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 11,
+ 0
+ ],
+ [
+ 12,
+ 0.5
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-transport-lightrail:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 8,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "light_rail"
+ ],
+ [
+ "!has",
+ "service"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "hsl(208,14%,27%)",
+ "line-width": {
+ "stops": [
+ [
+ 8,
+ 1
+ ],
+ [
+ 13,
+ 1
+ ],
+ [
+ 15,
+ 1
+ ],
+ [
+ 20,
+ 14
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 11,
+ 0
+ ],
+ [
+ 12,
+ 0.5
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-transport-lightrail-service:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 14,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "light_rail"
+ ],
+ [
+ "has",
+ "service"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "hsl(208,14%,27%)",
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 0
+ ],
+ [
+ 15,
+ 1
+ ],
+ [
+ 16,
+ 1
+ ],
+ [
+ 20,
+ 14
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-transport-rail:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 8,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "rail"
+ ],
+ [
+ "!has",
+ "service"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "hsl(208,14%,27%)",
+ "line-width": {
+ "stops": [
+ [
+ 8,
+ 1
+ ],
+ [
+ 13,
+ 1
+ ],
+ [
+ 15,
+ 1
+ ],
+ [
+ 20,
+ 14
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 8,
+ 0
+ ],
+ [
+ 9,
+ 0.3
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-transport-rail-service:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 14,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "rail"
+ ],
+ [
+ "has",
+ "service"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "hsl(208,14%,27%)",
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 0
+ ],
+ [
+ 15,
+ 1
+ ],
+ [
+ 16,
+ 1
+ ],
+ [
+ 20,
+ 14
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-transport-monorail:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "monorail"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "hsl(208,14%,27%)",
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 7
+ ],
+ [
+ 20,
+ 20
+ ]
+ ]
+ },
+ "line-dasharray": [
+ 0.1,
+ 0.5
+ ]
+ }
+ },
+ {
+ "id": "tunnel-transport-funicular:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "funicular"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "hsl(208,14%,27%)",
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 7
+ ],
+ [
+ 20,
+ 20
+ ]
+ ]
+ },
+ "line-dasharray": [
+ 0.1,
+ 0.5
+ ]
+ }
+ },
+ {
+ "id": "tunnel-transport-tram",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "tram"
+ ],
+ [
+ "!has",
+ "service"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 13,
+ 0
+ ],
+ [
+ 16,
+ 1
+ ],
+ [
+ 17,
+ 2
+ ],
+ [
+ 18,
+ 3
+ ],
+ [
+ 20,
+ 5
+ ]
+ ]
+ },
+ "line-color": "hsl(208,14%,27%)"
+ }
+ },
+ {
+ "id": "tunnel-transport-narrowgauge",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "narrow_gauge"
+ ],
+ [
+ "!has",
+ "service"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 13,
+ 0
+ ],
+ [
+ 16,
+ 1
+ ],
+ [
+ 17,
+ 2
+ ],
+ [
+ 18,
+ 3
+ ],
+ [
+ 20,
+ 5
+ ]
+ ]
+ },
+ "line-color": "hsl(208,14%,27%)"
+ }
+ },
+ {
+ "id": "tunnel-transport-subway",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "subway"
+ ],
+ [
+ "!has",
+ "service"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "rgb(42,55,67)",
+ "line-width": {
+ "stops": [
+ [
+ 11,
+ 0
+ ],
+ [
+ 12,
+ 1
+ ],
+ [
+ 15,
+ 2
+ ],
+ [
+ 16,
+ 2
+ ],
+ [
+ 18,
+ 5
+ ],
+ [
+ 19,
+ 6
+ ],
+ [
+ 20,
+ 8
+ ]
+ ]
+ },
+ "line-dasharray": [
+ 2,
+ 2
+ ],
+ "line-opacity": {
+ "stops": [
+ [
+ 14,
+ 0
+ ],
+ [
+ 15,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-transport-lightrail",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 14,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "light_rail"
+ ],
+ [
+ "!has",
+ "service"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "rgb(44,52,59)",
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 0
+ ],
+ [
+ 15,
+ 1
+ ],
+ [
+ 20,
+ 10
+ ]
+ ]
+ },
+ "line-dasharray": [
+ 2,
+ 2
+ ],
+ "line-opacity": {
+ "stops": [
+ [
+ 14,
+ 0
+ ],
+ [
+ 15,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-transport-lightrail-service",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "light_rail"
+ ],
+ [
+ "has",
+ "service"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "rgb(44,52,59)",
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 1
+ ],
+ [
+ 20,
+ 10
+ ]
+ ]
+ },
+ "line-dasharray": [
+ 2,
+ 2
+ ]
+ }
+ },
+ {
+ "id": "tunnel-transport-rail",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 14,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "rail"
+ ],
+ [
+ "!has",
+ "service"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "rgb(44,52,59)",
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 0
+ ],
+ [
+ 15,
+ 1
+ ],
+ [
+ 20,
+ 10
+ ]
+ ]
+ },
+ "line-dasharray": [
+ 2,
+ 2
+ ],
+ "line-opacity": {
+ "stops": [
+ [
+ 14,
+ 0
+ ],
+ [
+ 15,
+ 0.3
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-transport-rail-service",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "rail"
+ ],
+ [
+ "has",
+ "service"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "rgb(44,52,59)",
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 1
+ ],
+ [
+ 20,
+ 10
+ ]
+ ]
+ },
+ "line-dasharray": [
+ 2,
+ 2
+ ]
+ }
+ },
+ {
+ "id": "tunnel-transport-monorail",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "monorail"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 13,
+ 0
+ ],
+ [
+ 16,
+ 1
+ ],
+ [
+ 17,
+ 2
+ ],
+ [
+ 18,
+ 3
+ ],
+ [
+ 20,
+ 5
+ ]
+ ]
+ },
+ "line-color": "hsl(208,14%,27%)"
+ }
+ },
+ {
+ "id": "tunnel-transport-funicular",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "funicular"
+ ],
+ [
+ "==",
+ "tunnel",
+ true
+ ]
+ ],
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 13,
+ 0
+ ],
+ [
+ 16,
+ 1
+ ],
+ [
+ 17,
+ 2
+ ],
+ [
+ 18,
+ 3
+ ],
+ [
+ 20,
+ 5
+ ]
+ ]
+ },
+ "line-color": "hsl(208,14%,27%)"
+ }
+ },
+ {
+ "id": "bridge",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "bridges",
+ "paint": {
+ "fill-color": "rgb(20,16,11)",
+ "fill-antialias": true,
+ "fill-opacity": 0.8
+ }
+ },
+ {
+ "id": "street-pedestrian-zone",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "street_polygons",
+ "filter": [
+ "all",
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ],
+ [
+ "==",
+ "kind",
+ "pedestrian"
+ ]
+ ],
+ "paint": {
+ "fill-color": "rgba(16,0,20,0.25)",
+ "fill-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ],
+ [
+ 14,
+ 0
+ ],
+ [
+ 15,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "way-footway:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "footway"
+ ]
+ ],
+ "layout": {
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 7
+ ],
+ [
+ 19,
+ 12
+ ],
+ [
+ 20,
+ 22
+ ]
+ ]
+ },
+ "line-color": "rgb(40,26,44)"
+ }
+ },
+ {
+ "id": "way-steps:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "steps"
+ ]
+ ],
+ "layout": {
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 7
+ ],
+ [
+ 19,
+ 12
+ ],
+ [
+ 20,
+ 22
+ ]
+ ]
+ },
+ "line-color": "rgb(40,26,44)"
+ }
+ },
+ {
+ "id": "way-path:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "path"
+ ]
+ ],
+ "layout": {
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 7
+ ],
+ [
+ 19,
+ 12
+ ],
+ [
+ 20,
+ 22
+ ]
+ ]
+ },
+ "line-color": "rgb(40,26,44)"
+ }
+ },
+ {
+ "id": "way-cycleway:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "cycleway"
+ ]
+ ],
+ "layout": {
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 7
+ ],
+ [
+ 19,
+ 12
+ ],
+ [
+ 20,
+ 22
+ ]
+ ]
+ },
+ "line-color": "rgb(26,34,40)"
+ }
+ },
+ {
+ "id": "street-track:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "track"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(36,5%,20%)",
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 4
+ ],
+ [
+ 18,
+ 18
+ ],
+ [
+ 19,
+ 48
+ ],
+ [
+ 20,
+ 96
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 14,
+ 0
+ ],
+ [
+ 15,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-pedestrian:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "pedestrian"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(36,5%,20%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 2
+ ],
+ [
+ 14,
+ 3
+ ],
+ [
+ 16,
+ 6
+ ],
+ [
+ 18,
+ 26
+ ],
+ [
+ 19,
+ 64
+ ],
+ [
+ 20,
+ 128
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-service:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "service"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "rgb(37,36,34)",
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 1
+ ],
+ [
+ 16,
+ 3
+ ],
+ [
+ 18,
+ 12
+ ],
+ [
+ 19,
+ 32
+ ],
+ [
+ 20,
+ 48
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-livingstreet:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "living_street"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(36,5%,20%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 2
+ ],
+ [
+ 14,
+ 3
+ ],
+ [
+ 16,
+ 6
+ ],
+ [
+ 18,
+ 26
+ ],
+ [
+ 19,
+ 64
+ ],
+ [
+ 20,
+ 128
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-residential:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "residential"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(36,5%,20%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 2
+ ],
+ [
+ 14,
+ 3
+ ],
+ [
+ 16,
+ 6
+ ],
+ [
+ 18,
+ 26
+ ],
+ [
+ 19,
+ 64
+ ],
+ [
+ 20,
+ 128
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-unclassified:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "unclassified"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(36,5%,20%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 2
+ ],
+ [
+ 14,
+ 3
+ ],
+ [
+ 16,
+ 6
+ ],
+ [
+ 18,
+ 26
+ ],
+ [
+ 19,
+ 64
+ ],
+ [
+ 20,
+ 128
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-busway:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "busway"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "rgb(37,36,34)",
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 1
+ ],
+ [
+ 16,
+ 3
+ ],
+ [
+ 18,
+ 12
+ ],
+ [
+ 19,
+ 32
+ ],
+ [
+ 20,
+ 48
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-busguideway:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "bus_guideway"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "rgb(37,36,34)",
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 1
+ ],
+ [
+ 16,
+ 3
+ ],
+ [
+ 18,
+ 12
+ ],
+ [
+ 19,
+ 32
+ ],
+ [
+ 20,
+ 48
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-tertiary-link:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "tertiary"
+ ],
+ [
+ "==",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(36,5%,20%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 2
+ ],
+ [
+ 14,
+ 3
+ ],
+ [
+ 16,
+ 6
+ ],
+ [
+ 18,
+ 26
+ ],
+ [
+ 19,
+ 64
+ ],
+ [
+ 20,
+ 128
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-secondary-link:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "secondary"
+ ],
+ [
+ "==",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(28,64.8%,29.4%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 2
+ ],
+ [
+ 14,
+ 3
+ ],
+ [
+ 16,
+ 7
+ ],
+ [
+ 18,
+ 14
+ ],
+ [
+ 20,
+ 40
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-primary-link:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "primary"
+ ],
+ [
+ "==",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(28,64.8%,29.4%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 2
+ ],
+ [
+ 14,
+ 3
+ ],
+ [
+ 16,
+ 7
+ ],
+ [
+ 18,
+ 14
+ ],
+ [
+ 20,
+ 40
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-trunk-link:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "trunk"
+ ],
+ [
+ "==",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(28,64.8%,29.4%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 2
+ ],
+ [
+ 14,
+ 3
+ ],
+ [
+ 16,
+ 7
+ ],
+ [
+ 18,
+ 14
+ ],
+ [
+ 20,
+ 40
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-motorway-link:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "motorway"
+ ],
+ [
+ "==",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(28,64.8%,29.4%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 2
+ ],
+ [
+ 14,
+ 3
+ ],
+ [
+ 16,
+ 7
+ ],
+ [
+ 18,
+ 14
+ ],
+ [
+ 20,
+ 40
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-tertiary:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "tertiary"
+ ],
+ [
+ "!=",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(36,5%,20%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 2
+ ],
+ [
+ 14,
+ 3
+ ],
+ [
+ 16,
+ 6
+ ],
+ [
+ 18,
+ 26
+ ],
+ [
+ 19,
+ 64
+ ],
+ [
+ 20,
+ 128
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-secondary:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "secondary"
+ ],
+ [
+ "!=",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(28,64.8%,29.4%)",
+ "line-width": {
+ "stops": [
+ [
+ 11,
+ 2
+ ],
+ [
+ 14,
+ 5
+ ],
+ [
+ 16,
+ 8
+ ],
+ [
+ 18,
+ 30
+ ],
+ [
+ 19,
+ 68
+ ],
+ [
+ 20,
+ 138
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 11,
+ 0
+ ],
+ [
+ 12,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-primary:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "primary"
+ ],
+ [
+ "!=",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(28,64.8%,29.4%)",
+ "line-width": {
+ "stops": [
+ [
+ 8,
+ 0
+ ],
+ [
+ 9,
+ 1
+ ],
+ [
+ 10,
+ 4
+ ],
+ [
+ 14,
+ 6
+ ],
+ [
+ 16,
+ 12
+ ],
+ [
+ 18,
+ 36
+ ],
+ [
+ 19,
+ 74
+ ],
+ [
+ 20,
+ 144
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-trunk:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "trunk"
+ ],
+ [
+ "!=",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(28,64.8%,29.4%)",
+ "line-width": {
+ "stops": [
+ [
+ 6,
+ 0
+ ],
+ [
+ 7,
+ 2
+ ],
+ [
+ 10,
+ 4
+ ],
+ [
+ 14,
+ 6
+ ],
+ [
+ 16,
+ 12
+ ],
+ [
+ 18,
+ 36
+ ],
+ [
+ 19,
+ 74
+ ],
+ [
+ 20,
+ 144
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-motorway:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "motorway"
+ ],
+ [
+ "!=",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(28,64.8%,29.4%)",
+ "line-width": {
+ "stops": [
+ [
+ 5,
+ 0
+ ],
+ [
+ 6,
+ 2
+ ],
+ [
+ 10,
+ 5
+ ],
+ [
+ 14,
+ 5
+ ],
+ [
+ 16,
+ 14
+ ],
+ [
+ 18,
+ 38
+ ],
+ [
+ 19,
+ 84
+ ],
+ [
+ 20,
+ 168
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "way-footway",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "footway"
+ ]
+ ],
+ "layout": {
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 4
+ ],
+ [
+ 18,
+ 6
+ ],
+ [
+ 19,
+ 10
+ ],
+ [
+ 20,
+ 20
+ ]
+ ]
+ },
+ "line-color": "rgb(16,0,20)"
+ }
+ },
+ {
+ "id": "way-steps",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "steps"
+ ]
+ ],
+ "layout": {
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 4
+ ],
+ [
+ 18,
+ 6
+ ],
+ [
+ 19,
+ 10
+ ],
+ [
+ 20,
+ 20
+ ]
+ ]
+ },
+ "line-color": "rgb(16,0,20)"
+ }
+ },
+ {
+ "id": "way-path",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "path"
+ ]
+ ],
+ "layout": {
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 4
+ ],
+ [
+ 18,
+ 6
+ ],
+ [
+ 19,
+ 10
+ ],
+ [
+ 20,
+ 20
+ ]
+ ]
+ },
+ "line-color": "rgb(16,0,20)"
+ }
+ },
+ {
+ "id": "way-cycleway",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "cycleway"
+ ]
+ ],
+ "layout": {
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 4
+ ],
+ [
+ 18,
+ 6
+ ],
+ [
+ 19,
+ 10
+ ],
+ [
+ 20,
+ 20
+ ]
+ ]
+ },
+ "line-color": "hsl(203,100%,3%)"
+ }
+ },
+ {
+ "id": "street-track",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "track"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(0,0%,0%)",
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 1
+ ],
+ [
+ 16,
+ 3
+ ],
+ [
+ 18,
+ 16
+ ],
+ [
+ 19,
+ 44
+ ],
+ [
+ 20,
+ 88
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 14,
+ 0
+ ],
+ [
+ 15,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-pedestrian",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "pedestrian"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(288,100%,4%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 24
+ ],
+ [
+ 19,
+ 60
+ ],
+ [
+ 20,
+ 120
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 0
+ ],
+ [
+ 14,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-service",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "service"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "rgb(8,8,8)",
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 1
+ ],
+ [
+ 16,
+ 2
+ ],
+ [
+ 18,
+ 10
+ ],
+ [
+ 19,
+ 28
+ ],
+ [
+ 20,
+ 40
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-livingstreet",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "living_street"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(0,0%,0%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 24
+ ],
+ [
+ 19,
+ 60
+ ],
+ [
+ 20,
+ 120
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-residential",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "residential"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(0,0%,0%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 24
+ ],
+ [
+ 19,
+ 60
+ ],
+ [
+ 20,
+ 120
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-unclassified",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "unclassified"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(0,0%,0%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 24
+ ],
+ [
+ 19,
+ 60
+ ],
+ [
+ 20,
+ 120
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-busway",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "busway"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "rgb(8,8,8)",
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 1
+ ],
+ [
+ 16,
+ 2
+ ],
+ [
+ 18,
+ 10
+ ],
+ [
+ 19,
+ 28
+ ],
+ [
+ 20,
+ 40
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-busguideway",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "bus_guideway"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "rgb(8,8,8)",
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 1
+ ],
+ [
+ 16,
+ 2
+ ],
+ [
+ 18,
+ 10
+ ],
+ [
+ 19,
+ 28
+ ],
+ [
+ 20,
+ 40
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-track-bicycle",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "track"
+ ],
+ [
+ "==",
+ "bicycle",
+ "designated"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(0,0%,0%)"
+ }
+ },
+ {
+ "id": "street-pedestrian-bicycle",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "pedestrian"
+ ],
+ [
+ "==",
+ "bicycle",
+ "designated"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(203,100%,3%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 24
+ ],
+ [
+ 19,
+ 60
+ ],
+ [
+ 20,
+ 120
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-service-bicycle",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "service"
+ ],
+ [
+ "==",
+ "bicycle",
+ "designated"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(0,0%,0%)"
+ }
+ },
+ {
+ "id": "street-livingstreet-bicycle",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "living_street"
+ ],
+ [
+ "==",
+ "bicycle",
+ "designated"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(203,100%,3%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 24
+ ],
+ [
+ 19,
+ 60
+ ],
+ [
+ 20,
+ 120
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-residential-bicycle",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "residential"
+ ],
+ [
+ "==",
+ "bicycle",
+ "designated"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(203,100%,3%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 24
+ ],
+ [
+ 19,
+ 60
+ ],
+ [
+ 20,
+ 120
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-unclassified-bicycle",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "unclassified"
+ ],
+ [
+ "==",
+ "bicycle",
+ "designated"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(203,100%,3%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 24
+ ],
+ [
+ 19,
+ 60
+ ],
+ [
+ 20,
+ 120
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-tertiary-link",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "tertiary"
+ ],
+ [
+ "==",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(0,0%,0%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 24
+ ],
+ [
+ 19,
+ 60
+ ],
+ [
+ 20,
+ 120
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-secondary-link",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "secondary"
+ ],
+ [
+ "==",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(48,90.0%,16.1%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 12
+ ],
+ [
+ 20,
+ 38
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-primary-link",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "primary"
+ ],
+ [
+ "==",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(48,90.0%,16.1%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 12
+ ],
+ [
+ 20,
+ 38
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-trunk-link",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "trunk"
+ ],
+ [
+ "==",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(48,90.0%,16.1%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 12
+ ],
+ [
+ 20,
+ 38
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-motorway-link",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "motorway"
+ ],
+ [
+ "==",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(34,90.0%,21.8%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 12
+ ],
+ [
+ 20,
+ 38
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-tertiary",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "tertiary"
+ ],
+ [
+ "!=",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(0,0%,0%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 24
+ ],
+ [
+ 19,
+ 60
+ ],
+ [
+ 20,
+ 120
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-secondary",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "secondary"
+ ],
+ [
+ "!=",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(48,90.0%,16.1%)",
+ "line-width": {
+ "stops": [
+ [
+ 11,
+ 1
+ ],
+ [
+ 14,
+ 4
+ ],
+ [
+ 16,
+ 6
+ ],
+ [
+ 18,
+ 28
+ ],
+ [
+ 19,
+ 64
+ ],
+ [
+ 20,
+ 130
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 11,
+ 0
+ ],
+ [
+ 12,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-primary",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "primary"
+ ],
+ [
+ "!=",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(48,90.0%,16.1%)",
+ "line-width": {
+ "stops": [
+ [
+ 8,
+ 0
+ ],
+ [
+ 9,
+ 2
+ ],
+ [
+ 10,
+ 3
+ ],
+ [
+ 14,
+ 5
+ ],
+ [
+ 16,
+ 10
+ ],
+ [
+ 18,
+ 34
+ ],
+ [
+ 19,
+ 70
+ ],
+ [
+ 20,
+ 140
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 8,
+ 0
+ ],
+ [
+ 9,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-trunk",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "trunk"
+ ],
+ [
+ "!=",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(48,90.0%,16.1%)",
+ "line-width": {
+ "stops": [
+ [
+ 6,
+ 0
+ ],
+ [
+ 7,
+ 1
+ ],
+ [
+ 10,
+ 3
+ ],
+ [
+ 14,
+ 5
+ ],
+ [
+ 16,
+ 10
+ ],
+ [
+ 18,
+ 34
+ ],
+ [
+ 19,
+ 70
+ ],
+ [
+ 20,
+ 140
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 6,
+ 0
+ ],
+ [
+ 7,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "street-motorway",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "motorway"
+ ],
+ [
+ "!=",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(34,90.0%,21.8%)",
+ "line-width": {
+ "stops": [
+ [
+ 5,
+ 0
+ ],
+ [
+ 6,
+ 1
+ ],
+ [
+ 10,
+ 4
+ ],
+ [
+ 14,
+ 4
+ ],
+ [
+ 16,
+ 12
+ ],
+ [
+ 18,
+ 36
+ ],
+ [
+ 19,
+ 80
+ ],
+ [
+ 20,
+ 160
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 5,
+ 0
+ ],
+ [
+ 6,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "transport-tram:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "tram"
+ ],
+ [
+ "!has",
+ "service"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "hsl(208,14%,27%)",
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 7
+ ],
+ [
+ 20,
+ 20
+ ]
+ ]
+ },
+ "line-dasharray": [
+ 0.1,
+ 0.5
+ ]
+ }
+ },
+ {
+ "id": "transport-narrowgauge:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "narrow_gauge"
+ ],
+ [
+ "!has",
+ "service"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "hsl(208,14%,27%)",
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 7
+ ],
+ [
+ 20,
+ 20
+ ]
+ ]
+ },
+ "line-dasharray": [
+ 0.1,
+ 0.5
+ ]
+ }
+ },
+ {
+ "id": "transport-subway:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "subway"
+ ],
+ [
+ "!has",
+ "service"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "hsl(207,23%,28%)",
+ "line-width": {
+ "stops": [
+ [
+ 11,
+ 0
+ ],
+ [
+ 12,
+ 1
+ ],
+ [
+ 15,
+ 3
+ ],
+ [
+ 16,
+ 3
+ ],
+ [
+ 18,
+ 6
+ ],
+ [
+ 19,
+ 8
+ ],
+ [
+ 20,
+ 10
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 11,
+ 0
+ ],
+ [
+ 12,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "transport-lightrail:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 8,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "light_rail"
+ ],
+ [
+ "!has",
+ "service"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "hsl(208,14%,27%)",
+ "line-width": {
+ "stops": [
+ [
+ 8,
+ 1
+ ],
+ [
+ 13,
+ 1
+ ],
+ [
+ 15,
+ 1
+ ],
+ [
+ 20,
+ 14
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 11,
+ 0
+ ],
+ [
+ 12,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "transport-lightrail-service:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 14,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "light_rail"
+ ],
+ [
+ "has",
+ "service"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "hsl(208,14%,27%)",
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 0
+ ],
+ [
+ 15,
+ 1
+ ],
+ [
+ 16,
+ 1
+ ],
+ [
+ 20,
+ 14
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "transport-rail:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 8,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "rail"
+ ],
+ [
+ "!has",
+ "service"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "hsl(208,14%,27%)",
+ "line-width": {
+ "stops": [
+ [
+ 8,
+ 1
+ ],
+ [
+ 13,
+ 1
+ ],
+ [
+ 15,
+ 1
+ ],
+ [
+ 20,
+ 14
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 8,
+ 0
+ ],
+ [
+ 9,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "transport-rail-service:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 14,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "rail"
+ ],
+ [
+ "has",
+ "service"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "hsl(208,14%,27%)",
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 0
+ ],
+ [
+ 15,
+ 1
+ ],
+ [
+ 16,
+ 1
+ ],
+ [
+ 20,
+ 14
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "transport-monorail:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "monorail"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "hsl(208,14%,27%)",
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 7
+ ],
+ [
+ 20,
+ 20
+ ]
+ ]
+ },
+ "line-dasharray": [
+ 0.1,
+ 0.5
+ ]
+ }
+ },
+ {
+ "id": "transport-funicular:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "funicular"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "hsl(208,14%,27%)",
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 7
+ ],
+ [
+ 20,
+ 20
+ ]
+ ]
+ },
+ "line-dasharray": [
+ 0.1,
+ 0.5
+ ]
+ }
+ },
+ {
+ "id": "transport-tram",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "tram"
+ ],
+ [
+ "!has",
+ "service"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 13,
+ 0
+ ],
+ [
+ 16,
+ 1
+ ],
+ [
+ 17,
+ 2
+ ],
+ [
+ 18,
+ 3
+ ],
+ [
+ 20,
+ 5
+ ]
+ ]
+ },
+ "line-color": "hsl(208,14%,27%)"
+ }
+ },
+ {
+ "id": "transport-narrowgauge",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "narrow_gauge"
+ ],
+ [
+ "!has",
+ "service"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 13,
+ 0
+ ],
+ [
+ 16,
+ 1
+ ],
+ [
+ 17,
+ 2
+ ],
+ [
+ 18,
+ 3
+ ],
+ [
+ 20,
+ 5
+ ]
+ ]
+ },
+ "line-color": "hsl(208,14%,27%)"
+ }
+ },
+ {
+ "id": "transport-subway",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "subway"
+ ],
+ [
+ "!has",
+ "service"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "rgb(42,55,67)",
+ "line-width": {
+ "stops": [
+ [
+ 11,
+ 0
+ ],
+ [
+ 12,
+ 1
+ ],
+ [
+ 15,
+ 2
+ ],
+ [
+ 16,
+ 2
+ ],
+ [
+ 18,
+ 5
+ ],
+ [
+ 19,
+ 6
+ ],
+ [
+ 20,
+ 8
+ ]
+ ]
+ },
+ "line-dasharray": [
+ 2,
+ 2
+ ],
+ "line-opacity": {
+ "stops": [
+ [
+ 14,
+ 0
+ ],
+ [
+ 15,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "transport-lightrail",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 14,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "light_rail"
+ ],
+ [
+ "!has",
+ "service"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "rgb(44,52,59)",
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 0
+ ],
+ [
+ 15,
+ 1
+ ],
+ [
+ 20,
+ 10
+ ]
+ ]
+ },
+ "line-dasharray": [
+ 2,
+ 2
+ ],
+ "line-opacity": {
+ "stops": [
+ [
+ 14,
+ 0
+ ],
+ [
+ 15,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "transport-lightrail-service",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "light_rail"
+ ],
+ [
+ "has",
+ "service"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "rgb(44,52,59)",
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 1
+ ],
+ [
+ 20,
+ 10
+ ]
+ ]
+ },
+ "line-dasharray": [
+ 2,
+ 2
+ ]
+ }
+ },
+ {
+ "id": "transport-rail",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 14,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "rail"
+ ],
+ [
+ "!has",
+ "service"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "rgb(44,52,59)",
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 0
+ ],
+ [
+ 15,
+ 1
+ ],
+ [
+ 20,
+ 10
+ ]
+ ]
+ },
+ "line-dasharray": [
+ 2,
+ 2
+ ],
+ "line-opacity": {
+ "stops": [
+ [
+ 14,
+ 0
+ ],
+ [
+ 15,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "transport-rail-service",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "rail"
+ ],
+ [
+ "has",
+ "service"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "rgb(44,52,59)",
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 1
+ ],
+ [
+ 20,
+ 10
+ ]
+ ]
+ },
+ "line-dasharray": [
+ 2,
+ 2
+ ]
+ }
+ },
+ {
+ "id": "transport-monorail",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "monorail"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 13,
+ 0
+ ],
+ [
+ 16,
+ 1
+ ],
+ [
+ 17,
+ 2
+ ],
+ [
+ 18,
+ 3
+ ],
+ [
+ 20,
+ 5
+ ]
+ ]
+ },
+ "line-color": "hsl(208,14%,27%)"
+ }
+ },
+ {
+ "id": "transport-funicular",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "funicular"
+ ],
+ [
+ "!=",
+ "bridge",
+ true
+ ],
+ [
+ "!=",
+ "tunnel",
+ true
+ ]
+ ],
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 13,
+ 0
+ ],
+ [
+ 16,
+ 1
+ ],
+ [
+ 17,
+ 2
+ ],
+ [
+ 18,
+ 3
+ ],
+ [
+ 20,
+ 5
+ ]
+ ]
+ },
+ "line-color": "hsl(208,14%,27%)"
+ }
+ },
+ {
+ "id": "transport-ferry",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "ferries",
+ "minzoom": 10,
+ "paint": {
+ "line-color": "rgb(36,64,84)",
+ "line-width": {
+ "stops": [
+ [
+ 10,
+ 1
+ ],
+ [
+ 13,
+ 2
+ ],
+ [
+ 14,
+ 3
+ ],
+ [
+ 16,
+ 4
+ ],
+ [
+ 17,
+ 6
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 10,
+ 0
+ ],
+ [
+ 11,
+ 1
+ ]
+ ]
+ },
+ "line-dasharray": [
+ 1,
+ 1
+ ]
+ }
+ },
+ {
+ "id": "bridge-way-footway:bridge",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "footway"
+ ]
+ ],
+ "layout": {
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgb(20,16,11)",
+ "line-opacity": 0.5,
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 7
+ ],
+ [
+ 18,
+ 10
+ ],
+ [
+ 19,
+ 17
+ ],
+ [
+ 20,
+ 31
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-way-steps:bridge",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "steps"
+ ]
+ ],
+ "layout": {
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgb(20,16,11)",
+ "line-opacity": 0.5,
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 7
+ ],
+ [
+ 18,
+ 10
+ ],
+ [
+ 19,
+ 17
+ ],
+ [
+ 20,
+ 31
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-way-path:bridge",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "path"
+ ]
+ ],
+ "layout": {
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgb(20,16,11)",
+ "line-opacity": 0.5,
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 7
+ ],
+ [
+ 18,
+ 10
+ ],
+ [
+ 19,
+ 17
+ ],
+ [
+ 20,
+ 31
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-way-cycleway:bridge",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "cycleway"
+ ]
+ ],
+ "layout": {
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgb(20,16,11)",
+ "line-opacity": 0.5,
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 7
+ ],
+ [
+ 18,
+ 10
+ ],
+ [
+ 19,
+ 17
+ ],
+ [
+ 20,
+ 31
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-track:bridge",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "track"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "layout": {
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgb(20,16,11)",
+ "line-opacity": {
+ "stops": [
+ [
+ 14,
+ 0
+ ],
+ [
+ 15,
+ 1
+ ]
+ ]
+ },
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 3
+ ],
+ [
+ 16,
+ 6
+ ],
+ [
+ 18,
+ 25
+ ],
+ [
+ 19,
+ 67
+ ],
+ [
+ 20,
+ 134
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-pedestrian:bridge",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "pedestrian"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "layout": {
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgb(20,16,11)",
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ },
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 3
+ ],
+ [
+ 14,
+ 4
+ ],
+ [
+ 16,
+ 8
+ ],
+ [
+ 18,
+ 36
+ ],
+ [
+ 19,
+ 90
+ ],
+ [
+ 20,
+ 179
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-service:bridge",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "service"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "layout": {
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgb(20,16,11)",
+ "line-opacity": {
+ "stops": [
+ [
+ 14,
+ 0
+ ],
+ [
+ 15,
+ 1
+ ]
+ ]
+ },
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 3
+ ],
+ [
+ 16,
+ 6
+ ],
+ [
+ 18,
+ 25
+ ],
+ [
+ 19,
+ 67
+ ],
+ [
+ 20,
+ 134
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-livingstreet:bridge",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "living_street"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "layout": {
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgb(20,16,11)",
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ },
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 3
+ ],
+ [
+ 14,
+ 4
+ ],
+ [
+ 16,
+ 8
+ ],
+ [
+ 18,
+ 36
+ ],
+ [
+ 19,
+ 90
+ ],
+ [
+ 20,
+ 179
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-residential:bridge",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "residential"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "layout": {
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgb(20,16,11)",
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ },
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 3
+ ],
+ [
+ 14,
+ 4
+ ],
+ [
+ 16,
+ 8
+ ],
+ [
+ 18,
+ 36
+ ],
+ [
+ 19,
+ 90
+ ],
+ [
+ 20,
+ 179
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-unclassified:bridge",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "unclassified"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "layout": {
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgb(20,16,11)",
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ },
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 3
+ ],
+ [
+ 14,
+ 4
+ ],
+ [
+ 16,
+ 8
+ ],
+ [
+ 18,
+ 36
+ ],
+ [
+ 19,
+ 90
+ ],
+ [
+ 20,
+ 179
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-busway:bridge",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "busway"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "layout": {
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgb(20,16,11)",
+ "line-opacity": 0.5
+ }
+ },
+ {
+ "id": "bridge-street-busguideway:bridge",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "bus_guideway"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "layout": {
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgb(20,16,11)",
+ "line-opacity": 0.5
+ }
+ },
+ {
+ "id": "bridge-street-tertiary-link:bridge",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "tertiary"
+ ],
+ [
+ "==",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgb(20,16,11)",
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ },
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 3
+ ],
+ [
+ 14,
+ 4
+ ],
+ [
+ 16,
+ 8
+ ],
+ [
+ 18,
+ 36
+ ],
+ [
+ 19,
+ 90
+ ],
+ [
+ 20,
+ 179
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-secondary-link:bridge",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "secondary"
+ ],
+ [
+ "==",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgb(20,16,11)",
+ "line-opacity": 0.5,
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 3
+ ],
+ [
+ 14,
+ 4
+ ],
+ [
+ 16,
+ 10
+ ],
+ [
+ 18,
+ 20
+ ],
+ [
+ 20,
+ 56
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-primary-link:bridge",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "primary"
+ ],
+ [
+ "==",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgb(20,16,11)",
+ "line-opacity": 0.5,
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 3
+ ],
+ [
+ 14,
+ 4
+ ],
+ [
+ 16,
+ 10
+ ],
+ [
+ 18,
+ 20
+ ],
+ [
+ 20,
+ 56
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-trunk-link:bridge",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "trunk"
+ ],
+ [
+ "==",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgb(20,16,11)",
+ "line-opacity": 0.5,
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 3
+ ],
+ [
+ 14,
+ 4
+ ],
+ [
+ 16,
+ 10
+ ],
+ [
+ 18,
+ 20
+ ],
+ [
+ 20,
+ 56
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-motorway-link:bridge",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "motorway"
+ ],
+ [
+ "==",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgb(20,16,11)",
+ "line-opacity": 0.5,
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 3
+ ],
+ [
+ 14,
+ 4
+ ],
+ [
+ 16,
+ 10
+ ],
+ [
+ 18,
+ 20
+ ],
+ [
+ 20,
+ 56
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-tertiary:bridge",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "tertiary"
+ ],
+ [
+ "!=",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgb(20,16,11)",
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ },
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 3
+ ],
+ [
+ 14,
+ 4
+ ],
+ [
+ 16,
+ 8
+ ],
+ [
+ 18,
+ 36
+ ],
+ [
+ 19,
+ 90
+ ],
+ [
+ 20,
+ 179
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-secondary:bridge",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "secondary"
+ ],
+ [
+ "!=",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgb(20,16,11)",
+ "line-opacity": {
+ "stops": [
+ [
+ 11,
+ 0
+ ],
+ [
+ 12,
+ 1
+ ]
+ ]
+ },
+ "line-width": {
+ "stops": [
+ [
+ 11,
+ 3
+ ],
+ [
+ 14,
+ 7
+ ],
+ [
+ 16,
+ 11
+ ],
+ [
+ 18,
+ 42
+ ],
+ [
+ 19,
+ 95
+ ],
+ [
+ 20,
+ 193
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-primary:bridge",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "primary"
+ ],
+ [
+ "!=",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgb(20,16,11)",
+ "line-opacity": 0.5,
+ "line-width": {
+ "stops": [
+ [
+ 8,
+ 0
+ ],
+ [
+ 9,
+ 1
+ ],
+ [
+ 10,
+ 6
+ ],
+ [
+ 14,
+ 8
+ ],
+ [
+ 16,
+ 17
+ ],
+ [
+ 18,
+ 50
+ ],
+ [
+ 19,
+ 104
+ ],
+ [
+ 20,
+ 202
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-trunk:bridge",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "trunk"
+ ],
+ [
+ "!=",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgb(20,16,11)",
+ "line-opacity": 0.5,
+ "line-width": {
+ "stops": [
+ [
+ 7,
+ 0
+ ],
+ [
+ 8,
+ 3
+ ],
+ [
+ 10,
+ 6
+ ],
+ [
+ 14,
+ 8
+ ],
+ [
+ 16,
+ 17
+ ],
+ [
+ 18,
+ 50
+ ],
+ [
+ 19,
+ 104
+ ],
+ [
+ 20,
+ 202
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-motorway:bridge",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "motorway"
+ ],
+ [
+ "!=",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-cap": "butt",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgb(20,16,11)",
+ "line-opacity": 0.5,
+ "line-width": {
+ "stops": [
+ [
+ 5,
+ 0
+ ],
+ [
+ 6,
+ 3
+ ],
+ [
+ 10,
+ 7
+ ],
+ [
+ 14,
+ 7
+ ],
+ [
+ 16,
+ 20
+ ],
+ [
+ 18,
+ 53
+ ],
+ [
+ 19,
+ 118
+ ],
+ [
+ 20,
+ 235
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-pedestrian-zone",
+ "type": "fill",
+ "source": "versatiles-shortbread",
+ "source-layer": "street_polygons",
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "==",
+ "kind",
+ "pedestrian"
+ ]
+ ],
+ "paint": {
+ "fill-color": "hsl(0,0%,0%)",
+ "fill-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-way-footway:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "footway"
+ ]
+ ],
+ "layout": {
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 7
+ ],
+ [
+ 19,
+ 12
+ ],
+ [
+ 20,
+ 22
+ ]
+ ]
+ },
+ "line-color": "rgb(40,26,44)"
+ }
+ },
+ {
+ "id": "bridge-way-steps:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "steps"
+ ]
+ ],
+ "layout": {
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 7
+ ],
+ [
+ 19,
+ 12
+ ],
+ [
+ 20,
+ 22
+ ]
+ ]
+ },
+ "line-color": "rgb(40,26,44)"
+ }
+ },
+ {
+ "id": "bridge-way-path:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "path"
+ ]
+ ],
+ "layout": {
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 7
+ ],
+ [
+ 19,
+ 12
+ ],
+ [
+ 20,
+ 22
+ ]
+ ]
+ },
+ "line-color": "rgb(40,26,44)"
+ }
+ },
+ {
+ "id": "bridge-way-cycleway:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "cycleway"
+ ]
+ ],
+ "layout": {
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 7
+ ],
+ [
+ 19,
+ 12
+ ],
+ [
+ 20,
+ 22
+ ]
+ ]
+ },
+ "line-color": "rgb(26,34,40)"
+ }
+ },
+ {
+ "id": "bridge-street-track:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "track"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "rgb(38,38,38)",
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 4
+ ],
+ [
+ 18,
+ 18
+ ],
+ [
+ 19,
+ 48
+ ],
+ [
+ 20,
+ 96
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 14,
+ 0
+ ],
+ [
+ 15,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-pedestrian:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "pedestrian"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "rgb(38,38,38)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 2
+ ],
+ [
+ 14,
+ 3
+ ],
+ [
+ 16,
+ 6
+ ],
+ [
+ 18,
+ 26
+ ],
+ [
+ 19,
+ 64
+ ],
+ [
+ 20,
+ 128
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-service:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "service"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "rgb(37,36,34)",
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 1
+ ],
+ [
+ 16,
+ 3
+ ],
+ [
+ 18,
+ 12
+ ],
+ [
+ 19,
+ 32
+ ],
+ [
+ 20,
+ 48
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-livingstreet:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "living_street"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "rgb(38,38,38)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 2
+ ],
+ [
+ 14,
+ 3
+ ],
+ [
+ 16,
+ 6
+ ],
+ [
+ 18,
+ 26
+ ],
+ [
+ 19,
+ 64
+ ],
+ [
+ 20,
+ 128
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-residential:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "residential"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "rgb(38,38,38)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 2
+ ],
+ [
+ 14,
+ 3
+ ],
+ [
+ 16,
+ 6
+ ],
+ [
+ 18,
+ 26
+ ],
+ [
+ 19,
+ 64
+ ],
+ [
+ 20,
+ 128
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-unclassified:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "unclassified"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "rgb(38,38,38)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 2
+ ],
+ [
+ 14,
+ 3
+ ],
+ [
+ 16,
+ 6
+ ],
+ [
+ 18,
+ 26
+ ],
+ [
+ 19,
+ 64
+ ],
+ [
+ 20,
+ 128
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-busway:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "busway"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "rgb(37,36,34)",
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 1
+ ],
+ [
+ 16,
+ 3
+ ],
+ [
+ 18,
+ 12
+ ],
+ [
+ 19,
+ 32
+ ],
+ [
+ 20,
+ 48
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-busguideway:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "bus_guideway"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "rgb(37,36,34)",
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 1
+ ],
+ [
+ 16,
+ 3
+ ],
+ [
+ 18,
+ 12
+ ],
+ [
+ 19,
+ 32
+ ],
+ [
+ 20,
+ 48
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-tertiary-link:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "tertiary"
+ ],
+ [
+ "==",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "rgb(38,38,38)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 2
+ ],
+ [
+ 14,
+ 3
+ ],
+ [
+ 16,
+ 6
+ ],
+ [
+ 18,
+ 26
+ ],
+ [
+ 19,
+ 64
+ ],
+ [
+ 20,
+ 128
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-secondary-link:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "secondary"
+ ],
+ [
+ "==",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "hsl(28,64.8%,29.4%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 2
+ ],
+ [
+ 14,
+ 3
+ ],
+ [
+ 16,
+ 7
+ ],
+ [
+ 18,
+ 14
+ ],
+ [
+ 20,
+ 40
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-primary-link:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "primary"
+ ],
+ [
+ "==",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "hsl(28,64.8%,29.4%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 2
+ ],
+ [
+ 14,
+ 3
+ ],
+ [
+ 16,
+ 7
+ ],
+ [
+ 18,
+ 14
+ ],
+ [
+ 20,
+ 40
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-trunk-link:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "trunk"
+ ],
+ [
+ "==",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "hsl(28,64.8%,29.4%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 2
+ ],
+ [
+ 14,
+ 3
+ ],
+ [
+ 16,
+ 7
+ ],
+ [
+ 18,
+ 14
+ ],
+ [
+ 20,
+ 40
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-motorway-link:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "motorway"
+ ],
+ [
+ "==",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "hsl(28,64.8%,29.4%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 2
+ ],
+ [
+ 14,
+ 3
+ ],
+ [
+ 16,
+ 7
+ ],
+ [
+ 18,
+ 14
+ ],
+ [
+ 20,
+ 40
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-tertiary:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "tertiary"
+ ],
+ [
+ "!=",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "rgb(38,38,38)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 2
+ ],
+ [
+ 14,
+ 3
+ ],
+ [
+ 16,
+ 6
+ ],
+ [
+ 18,
+ 26
+ ],
+ [
+ 19,
+ 64
+ ],
+ [
+ 20,
+ 128
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-secondary:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "secondary"
+ ],
+ [
+ "!=",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "hsl(28,64.8%,29.4%)",
+ "line-width": {
+ "stops": [
+ [
+ 11,
+ 2
+ ],
+ [
+ 14,
+ 5
+ ],
+ [
+ 16,
+ 8
+ ],
+ [
+ 18,
+ 30
+ ],
+ [
+ 19,
+ 68
+ ],
+ [
+ 20,
+ 138
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 11,
+ 0
+ ],
+ [
+ 12,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-primary:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "primary"
+ ],
+ [
+ "!=",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "hsl(28,64.8%,29.4%)",
+ "line-width": {
+ "stops": [
+ [
+ 8,
+ 0
+ ],
+ [
+ 9,
+ 1
+ ],
+ [
+ 10,
+ 4
+ ],
+ [
+ 14,
+ 6
+ ],
+ [
+ 16,
+ 12
+ ],
+ [
+ 18,
+ 36
+ ],
+ [
+ 19,
+ 74
+ ],
+ [
+ 20,
+ 144
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-trunk:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "trunk"
+ ],
+ [
+ "!=",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "hsl(28,64.8%,29.4%)",
+ "line-width": {
+ "stops": [
+ [
+ 6,
+ 0
+ ],
+ [
+ 7,
+ 2
+ ],
+ [
+ 10,
+ 4
+ ],
+ [
+ 14,
+ 6
+ ],
+ [
+ 16,
+ 12
+ ],
+ [
+ 18,
+ 36
+ ],
+ [
+ 19,
+ 74
+ ],
+ [
+ 20,
+ 144
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-motorway:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "motorway"
+ ],
+ [
+ "!=",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "hsl(28,64.8%,29.4%)",
+ "line-width": {
+ "stops": [
+ [
+ 5,
+ 0
+ ],
+ [
+ 6,
+ 2
+ ],
+ [
+ 10,
+ 5
+ ],
+ [
+ 14,
+ 5
+ ],
+ [
+ 16,
+ 14
+ ],
+ [
+ 18,
+ 38
+ ],
+ [
+ 19,
+ 84
+ ],
+ [
+ 20,
+ 168
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-way-footway",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "footway"
+ ]
+ ],
+ "layout": {
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 4
+ ],
+ [
+ 18,
+ 6
+ ],
+ [
+ 19,
+ 10
+ ],
+ [
+ 20,
+ 20
+ ]
+ ]
+ },
+ "line-color": "rgb(16,0,20)"
+ }
+ },
+ {
+ "id": "bridge-way-steps",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "steps"
+ ]
+ ],
+ "layout": {
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 4
+ ],
+ [
+ 18,
+ 6
+ ],
+ [
+ 19,
+ 10
+ ],
+ [
+ 20,
+ 20
+ ]
+ ]
+ },
+ "line-color": "rgb(16,0,20)"
+ }
+ },
+ {
+ "id": "bridge-way-path",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "path"
+ ]
+ ],
+ "layout": {
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 4
+ ],
+ [
+ 18,
+ 6
+ ],
+ [
+ 19,
+ 10
+ ],
+ [
+ 20,
+ 20
+ ]
+ ]
+ },
+ "line-color": "rgb(16,0,20)"
+ }
+ },
+ {
+ "id": "bridge-way-cycleway",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "cycleway"
+ ]
+ ],
+ "layout": {
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 4
+ ],
+ [
+ 18,
+ 6
+ ],
+ [
+ 19,
+ 10
+ ],
+ [
+ 20,
+ 20
+ ]
+ ]
+ },
+ "line-color": "hsl(203,100%,3%)"
+ }
+ },
+ {
+ "id": "bridge-street-track",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "track"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "hsl(0,0%,0%)",
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 1
+ ],
+ [
+ 16,
+ 3
+ ],
+ [
+ 18,
+ 16
+ ],
+ [
+ 19,
+ 44
+ ],
+ [
+ 20,
+ 88
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 14,
+ 0
+ ],
+ [
+ 15,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-pedestrian",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "pedestrian"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "hsl(0,0%,0%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 24
+ ],
+ [
+ 19,
+ 60
+ ],
+ [
+ 20,
+ 120
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-service",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "service"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "rgb(8,8,8)",
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 1
+ ],
+ [
+ 16,
+ 2
+ ],
+ [
+ 18,
+ 10
+ ],
+ [
+ 19,
+ 28
+ ],
+ [
+ 20,
+ 40
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-livingstreet",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "living_street"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "hsl(0,0%,0%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 24
+ ],
+ [
+ 19,
+ 60
+ ],
+ [
+ 20,
+ 120
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-residential",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "residential"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "hsl(0,0%,0%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 24
+ ],
+ [
+ 19,
+ 60
+ ],
+ [
+ 20,
+ 120
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-unclassified",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "unclassified"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "hsl(0,0%,0%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 24
+ ],
+ [
+ 19,
+ 60
+ ],
+ [
+ 20,
+ 120
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-busway",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "busway"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "rgb(8,8,8)",
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 1
+ ],
+ [
+ 16,
+ 2
+ ],
+ [
+ 18,
+ 10
+ ],
+ [
+ 19,
+ 28
+ ],
+ [
+ 20,
+ 40
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-busguideway",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "bus_guideway"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "rgb(8,8,8)",
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 1
+ ],
+ [
+ 16,
+ 2
+ ],
+ [
+ 18,
+ 10
+ ],
+ [
+ 19,
+ 28
+ ],
+ [
+ 20,
+ 40
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-track-bicycle",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "track"
+ ],
+ [
+ "==",
+ "bicycle",
+ "designated"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "hsl(0,0%,0%)"
+ }
+ },
+ {
+ "id": "bridge-street-pedestrian-bicycle",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "pedestrian"
+ ],
+ [
+ "==",
+ "bicycle",
+ "designated"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(203,100%,3%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 24
+ ],
+ [
+ 19,
+ 60
+ ],
+ [
+ 20,
+ 120
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-service-bicycle",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "service"
+ ],
+ [
+ "==",
+ "bicycle",
+ "designated"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "hsl(0,0%,0%)"
+ }
+ },
+ {
+ "id": "bridge-street-livingstreet-bicycle",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "living_street"
+ ],
+ [
+ "==",
+ "bicycle",
+ "designated"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(203,100%,3%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 24
+ ],
+ [
+ 19,
+ 60
+ ],
+ [
+ 20,
+ 120
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-residential-bicycle",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "residential"
+ ],
+ [
+ "==",
+ "bicycle",
+ "designated"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(203,100%,3%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 24
+ ],
+ [
+ 19,
+ 60
+ ],
+ [
+ 20,
+ 120
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-unclassified-bicycle",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "unclassified"
+ ],
+ [
+ "==",
+ "bicycle",
+ "designated"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "paint": {
+ "line-color": "hsl(203,100%,3%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 24
+ ],
+ [
+ 19,
+ 60
+ ],
+ [
+ 20,
+ 120
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-tertiary-link",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "tertiary"
+ ],
+ [
+ "==",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "hsl(0,0%,0%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 24
+ ],
+ [
+ 19,
+ 60
+ ],
+ [
+ 20,
+ 120
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-secondary-link",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "secondary"
+ ],
+ [
+ "==",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "hsl(48,90.0%,16.1%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 12
+ ],
+ [
+ 20,
+ 38
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-primary-link",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "primary"
+ ],
+ [
+ "==",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "hsl(48,90.0%,16.1%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 12
+ ],
+ [
+ 20,
+ 38
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-trunk-link",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "trunk"
+ ],
+ [
+ "==",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "hsl(48,90.0%,16.1%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 12
+ ],
+ [
+ 20,
+ 38
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-motorway-link",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "motorway"
+ ],
+ [
+ "==",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "hsl(34,90.0%,21.8%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 12
+ ],
+ [
+ 20,
+ 38
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-tertiary",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "tertiary"
+ ],
+ [
+ "!=",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "hsl(0,0%,0%)",
+ "line-width": {
+ "stops": [
+ [
+ 12,
+ 1
+ ],
+ [
+ 14,
+ 2
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 24
+ ],
+ [
+ 19,
+ 60
+ ],
+ [
+ 20,
+ 120
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 12,
+ 0
+ ],
+ [
+ 13,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-secondary",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "secondary"
+ ],
+ [
+ "!=",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "hsl(48,90.0%,16.1%)",
+ "line-width": {
+ "stops": [
+ [
+ 11,
+ 1
+ ],
+ [
+ 14,
+ 4
+ ],
+ [
+ 16,
+ 6
+ ],
+ [
+ 18,
+ 28
+ ],
+ [
+ 19,
+ 64
+ ],
+ [
+ 20,
+ 130
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 11,
+ 0
+ ],
+ [
+ 12,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-primary",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "primary"
+ ],
+ [
+ "!=",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "hsl(48,90.0%,16.1%)",
+ "line-width": {
+ "stops": [
+ [
+ 8,
+ 0
+ ],
+ [
+ 9,
+ 2
+ ],
+ [
+ 10,
+ 3
+ ],
+ [
+ 14,
+ 5
+ ],
+ [
+ 16,
+ 10
+ ],
+ [
+ 18,
+ 34
+ ],
+ [
+ 19,
+ 70
+ ],
+ [
+ 20,
+ 140
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 8,
+ 0
+ ],
+ [
+ 9,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-trunk",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "trunk"
+ ],
+ [
+ "!=",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "hsl(48,90.0%,16.1%)",
+ "line-width": {
+ "stops": [
+ [
+ 6,
+ 0
+ ],
+ [
+ 7,
+ 1
+ ],
+ [
+ 10,
+ 3
+ ],
+ [
+ 14,
+ 5
+ ],
+ [
+ 16,
+ 10
+ ],
+ [
+ 18,
+ 34
+ ],
+ [
+ 19,
+ 70
+ ],
+ [
+ 20,
+ 140
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 6,
+ 0
+ ],
+ [
+ 7,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-motorway",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "==",
+ "bridge",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "motorway"
+ ],
+ [
+ "!=",
+ "link",
+ true
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "line-cap": "butt"
+ },
+ "paint": {
+ "line-color": "hsl(34,90.0%,21.8%)",
+ "line-width": {
+ "stops": [
+ [
+ 5,
+ 0
+ ],
+ [
+ 6,
+ 1
+ ],
+ [
+ 10,
+ 4
+ ],
+ [
+ 14,
+ 4
+ ],
+ [
+ 16,
+ 12
+ ],
+ [
+ 18,
+ 36
+ ],
+ [
+ 19,
+ 80
+ ],
+ [
+ 20,
+ 160
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 5,
+ 0
+ ],
+ [
+ 6,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-transport-tram:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "tram"
+ ],
+ [
+ "!has",
+ "service"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "hsl(208,14%,27%)",
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 7
+ ],
+ [
+ 20,
+ 20
+ ]
+ ]
+ },
+ "line-dasharray": [
+ 0.1,
+ 0.5
+ ]
+ }
+ },
+ {
+ "id": "bridge-transport-narrowgauge:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "narrow_gauge"
+ ],
+ [
+ "!has",
+ "service"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "hsl(208,14%,27%)",
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 7
+ ],
+ [
+ 20,
+ 20
+ ]
+ ]
+ },
+ "line-dasharray": [
+ 0.1,
+ 0.5
+ ]
+ }
+ },
+ {
+ "id": "bridge-transport-subway:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "subway"
+ ],
+ [
+ "!has",
+ "service"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "hsl(207,23%,28%)",
+ "line-width": {
+ "stops": [
+ [
+ 11,
+ 0
+ ],
+ [
+ 12,
+ 1
+ ],
+ [
+ 15,
+ 3
+ ],
+ [
+ 16,
+ 3
+ ],
+ [
+ 18,
+ 6
+ ],
+ [
+ 19,
+ 8
+ ],
+ [
+ 20,
+ 10
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 11,
+ 0
+ ],
+ [
+ 12,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-transport-lightrail:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 8,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "light_rail"
+ ],
+ [
+ "!has",
+ "service"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "hsl(208,14%,27%)",
+ "line-width": {
+ "stops": [
+ [
+ 8,
+ 1
+ ],
+ [
+ 13,
+ 1
+ ],
+ [
+ 15,
+ 1
+ ],
+ [
+ 20,
+ 14
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 11,
+ 0
+ ],
+ [
+ 12,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-transport-lightrail-service:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 14,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "light_rail"
+ ],
+ [
+ "has",
+ "service"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "hsl(208,14%,27%)",
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 0
+ ],
+ [
+ 15,
+ 1
+ ],
+ [
+ 16,
+ 1
+ ],
+ [
+ 20,
+ 14
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-transport-rail:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 8,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "rail"
+ ],
+ [
+ "!has",
+ "service"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "hsl(208,14%,27%)",
+ "line-width": {
+ "stops": [
+ [
+ 8,
+ 1
+ ],
+ [
+ 13,
+ 1
+ ],
+ [
+ 15,
+ 1
+ ],
+ [
+ 20,
+ 14
+ ]
+ ]
+ },
+ "line-opacity": {
+ "stops": [
+ [
+ 8,
+ 0
+ ],
+ [
+ 9,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-transport-rail-service:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 14,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "rail"
+ ],
+ [
+ "has",
+ "service"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "hsl(208,14%,27%)",
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 0
+ ],
+ [
+ 15,
+ 1
+ ],
+ [
+ 16,
+ 1
+ ],
+ [
+ 20,
+ 14
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-transport-monorail:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "monorail"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "hsl(208,14%,27%)",
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 7
+ ],
+ [
+ 20,
+ 20
+ ]
+ ]
+ },
+ "line-dasharray": [
+ 0.1,
+ 0.5
+ ]
+ }
+ },
+ {
+ "id": "bridge-transport-funicular:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "funicular"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "hsl(208,14%,27%)",
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 5
+ ],
+ [
+ 18,
+ 7
+ ],
+ [
+ 20,
+ 20
+ ]
+ ]
+ },
+ "line-dasharray": [
+ 0.1,
+ 0.5
+ ]
+ }
+ },
+ {
+ "id": "bridge-transport-tram",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "tram"
+ ],
+ [
+ "!has",
+ "service"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 13,
+ 0
+ ],
+ [
+ 16,
+ 1
+ ],
+ [
+ 17,
+ 2
+ ],
+ [
+ 18,
+ 3
+ ],
+ [
+ 20,
+ 5
+ ]
+ ]
+ },
+ "line-color": "hsl(208,14%,27%)"
+ }
+ },
+ {
+ "id": "bridge-transport-narrowgauge",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "narrow_gauge"
+ ],
+ [
+ "!has",
+ "service"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 13,
+ 0
+ ],
+ [
+ 16,
+ 1
+ ],
+ [
+ 17,
+ 2
+ ],
+ [
+ 18,
+ 3
+ ],
+ [
+ 20,
+ 5
+ ]
+ ]
+ },
+ "line-color": "hsl(208,14%,27%)"
+ }
+ },
+ {
+ "id": "bridge-transport-subway",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "subway"
+ ],
+ [
+ "!has",
+ "service"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "rgb(42,55,67)",
+ "line-width": {
+ "stops": [
+ [
+ 11,
+ 0
+ ],
+ [
+ 12,
+ 1
+ ],
+ [
+ 15,
+ 2
+ ],
+ [
+ 16,
+ 2
+ ],
+ [
+ 18,
+ 5
+ ],
+ [
+ 19,
+ 6
+ ],
+ [
+ 20,
+ 8
+ ]
+ ]
+ },
+ "line-dasharray": [
+ 2,
+ 2
+ ],
+ "line-opacity": {
+ "stops": [
+ [
+ 14,
+ 0
+ ],
+ [
+ 15,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-transport-lightrail",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 14,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "light_rail"
+ ],
+ [
+ "!has",
+ "service"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "rgb(44,52,59)",
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 0
+ ],
+ [
+ 15,
+ 1
+ ],
+ [
+ 20,
+ 10
+ ]
+ ]
+ },
+ "line-dasharray": [
+ 2,
+ 2
+ ],
+ "line-opacity": {
+ "stops": [
+ [
+ 14,
+ 0
+ ],
+ [
+ 15,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-transport-lightrail-service",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "light_rail"
+ ],
+ [
+ "has",
+ "service"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "rgb(44,52,59)",
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 1
+ ],
+ [
+ 20,
+ 10
+ ]
+ ]
+ },
+ "line-dasharray": [
+ 2,
+ 2
+ ]
+ }
+ },
+ {
+ "id": "bridge-transport-rail",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 14,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "rail"
+ ],
+ [
+ "!has",
+ "service"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "rgb(44,52,59)",
+ "line-width": {
+ "stops": [
+ [
+ 14,
+ 0
+ ],
+ [
+ 15,
+ 1
+ ],
+ [
+ 20,
+ 10
+ ]
+ ]
+ },
+ "line-dasharray": [
+ 2,
+ 2
+ ],
+ "line-opacity": {
+ "stops": [
+ [
+ 14,
+ 0
+ ],
+ [
+ 15,
+ 1
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-transport-rail-service",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "rail"
+ ],
+ [
+ "has",
+ "service"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "paint": {
+ "line-color": "rgb(44,52,59)",
+ "line-width": {
+ "stops": [
+ [
+ 15,
+ 0
+ ],
+ [
+ 16,
+ 1
+ ],
+ [
+ 20,
+ 10
+ ]
+ ]
+ },
+ "line-dasharray": [
+ 2,
+ 2
+ ]
+ }
+ },
+ {
+ "id": "bridge-transport-monorail",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "monorail"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 13,
+ 0
+ ],
+ [
+ 16,
+ 1
+ ],
+ [
+ 17,
+ 2
+ ],
+ [
+ 18,
+ 3
+ ],
+ [
+ 20,
+ 5
+ ]
+ ]
+ },
+ "line-color": "hsl(208,14%,27%)"
+ }
+ },
+ {
+ "id": "bridge-transport-funicular",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "funicular"
+ ],
+ [
+ "==",
+ "bridge",
+ true
+ ]
+ ],
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 13,
+ 0
+ ],
+ [
+ 16,
+ 1
+ ],
+ [
+ 17,
+ 2
+ ],
+ [
+ 18,
+ 3
+ ],
+ [
+ 20,
+ 5
+ ]
+ ]
+ },
+ "line-color": "hsl(208,14%,27%)"
+ }
+ },
+ {
+ "id": "poi-amenity",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "pois",
+ "minzoom": 16,
+ "filter": [
+ "to-boolean",
+ [
+ "get",
+ "amenity"
+ ]
+ ],
+ "layout": {
+ "icon-size": {
+ "stops": [
+ [
+ 16,
+ 0.5
+ ],
+ [
+ 19,
+ 0.5
+ ],
+ [
+ 20,
+ 1
+ ]
+ ]
+ },
+ "symbol-placement": "point",
+ "icon-optional": true,
+ "text-font": [
+ "noto_sans_regular"
+ ],
+ "icon-image": [
+ "match",
+ [
+ "get",
+ "amenity"
+ ],
+ "arts_centre",
+ "basics:icon-art_gallery",
+ "atm",
+ "basics:icon-atm",
+ "bank",
+ "basics:icon-bank",
+ "bar",
+ "basics:icon-bar",
+ "bench",
+ "basics:icon-bench",
+ "bicycle_rental",
+ "basics:icon-bicycle_share",
+ "biergarten",
+ "basics:icon-beergarden",
+ "cafe",
+ "basics:icon-cafe",
+ "car_rental",
+ "basics:icon-car_rental",
+ "car_sharing",
+ "basics:icon-car_rental",
+ "car_wash",
+ "basics:icon-car_wash",
+ "cinema",
+ "basics:icon-cinema",
+ "college",
+ "basics:icon-college",
+ "community_centre",
+ "basics:icon-community",
+ "dentist",
+ "basics:icon-dentist",
+ "doctors",
+ "basics:icon-doctor",
+ "dog_park",
+ "basics:icon-dog_park",
+ "drinking_water",
+ "basics:icon-drinking_water",
+ "embassy",
+ "basics:icon-embassy",
+ "fast_food",
+ "basics:icon-fast_food",
+ "fire_station",
+ "basics:icon-fire_station",
+ "fountain",
+ "basics:icon-fountain",
+ "grave_yard",
+ "basics:icon-cemetery",
+ "hospital",
+ "basics:icon-hospital",
+ "hunting_stand",
+ "basics:icon-huntingstand",
+ "library",
+ "basics:icon-library",
+ "marketplace",
+ "basics:icon-marketplace",
+ "nightclub",
+ "basics:icon-nightclub",
+ "nursing_home",
+ "basics:icon-nursinghome",
+ "pharmacy",
+ "basics:icon-pharmacy",
+ "place_of_worship",
+ "basics:icon-place_of_worship",
+ "playground",
+ "basics:icon-playground",
+ "police",
+ "basics:icon-police",
+ "post_box",
+ "basics:icon-postbox",
+ "post_office",
+ "basics:icon-post",
+ "prison",
+ "basics:icon-prison",
+ "pub",
+ "basics:icon-beer",
+ "recycling",
+ "basics:icon-recycling",
+ "restaurant",
+ "basics:icon-restaurant",
+ "school",
+ "basics:icon-school",
+ "shelter",
+ "basics:icon-shelter",
+ "telephone",
+ "basics:icon-telephone",
+ "theatre",
+ "basics:icon-theatre",
+ "toilets",
+ "basics:icon-toilet",
+ "townhall",
+ "basics:icon-town_hall",
+ "vending_machine",
+ "basics:icon-vendingmachine",
+ "veterinary",
+ "basics:icon-veterinary",
+ "waste_basket",
+ "basics:icon-waste_basket",
+ ""
+ ]
+ },
+ "paint": {
+ "icon-opacity": {
+ "stops": [
+ [
+ 16,
+ 0
+ ],
+ [
+ 17,
+ 0.4
+ ]
+ ]
+ },
+ "text-opacity": {
+ "stops": [
+ [
+ 16,
+ 0
+ ],
+ [
+ 17,
+ 0.4
+ ]
+ ]
+ },
+ "icon-color": "hsl(0,0%,67%)",
+ "text-color": "hsl(0,0%,67%)"
+ }
+ },
+ {
+ "id": "poi-leisure",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "pois",
+ "minzoom": 16,
+ "filter": [
+ "to-boolean",
+ [
+ "get",
+ "leisure"
+ ]
+ ],
+ "layout": {
+ "icon-size": {
+ "stops": [
+ [
+ 16,
+ 0.5
+ ],
+ [
+ 19,
+ 0.5
+ ],
+ [
+ 20,
+ 1
+ ]
+ ]
+ },
+ "symbol-placement": "point",
+ "icon-optional": true,
+ "text-font": [
+ "noto_sans_regular"
+ ],
+ "icon-image": [
+ "match",
+ [
+ "get",
+ "leisure"
+ ],
+ "golf_course",
+ "basics:icon-golf",
+ "ice_rink",
+ "basics:icon-icerink",
+ "pitch",
+ "basics:icon-pitch",
+ "stadium",
+ "basics:icon-stadium",
+ "swimming_pool",
+ "basics:icon-swimming",
+ "water_park",
+ "basics:icon-waterpark",
+ "basics:icon-sports"
+ ]
+ },
+ "paint": {
+ "icon-opacity": {
+ "stops": [
+ [
+ 16,
+ 0
+ ],
+ [
+ 17,
+ 0.4
+ ]
+ ]
+ },
+ "text-opacity": {
+ "stops": [
+ [
+ 16,
+ 0
+ ],
+ [
+ 17,
+ 0.4
+ ]
+ ]
+ },
+ "icon-color": "hsl(0,0%,67%)",
+ "text-color": "hsl(0,0%,67%)"
+ }
+ },
+ {
+ "id": "poi-tourism",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "pois",
+ "minzoom": 16,
+ "filter": [
+ "to-boolean",
+ [
+ "get",
+ "tourism"
+ ]
+ ],
+ "layout": {
+ "icon-size": {
+ "stops": [
+ [
+ 16,
+ 0.5
+ ],
+ [
+ 19,
+ 0.5
+ ],
+ [
+ 20,
+ 1
+ ]
+ ]
+ },
+ "symbol-placement": "point",
+ "icon-optional": true,
+ "text-font": [
+ "noto_sans_regular"
+ ],
+ "icon-image": [
+ "match",
+ [
+ "get",
+ "tourism"
+ ],
+ "chalet",
+ "basics:icon-chalet",
+ "information",
+ "basics:transport-information",
+ "picnic_site",
+ "basics:icon-picnic_site",
+ "viewpoint",
+ "basics:icon-viewpoint",
+ "zoo",
+ "basics:icon-zoo",
+ ""
+ ]
+ },
+ "paint": {
+ "icon-opacity": {
+ "stops": [
+ [
+ 16,
+ 0
+ ],
+ [
+ 17,
+ 0.4
+ ]
+ ]
+ },
+ "text-opacity": {
+ "stops": [
+ [
+ 16,
+ 0
+ ],
+ [
+ 17,
+ 0.4
+ ]
+ ]
+ },
+ "icon-color": "hsl(0,0%,67%)",
+ "text-color": "hsl(0,0%,67%)"
+ }
+ },
+ {
+ "id": "poi-shop",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "pois",
+ "minzoom": 16,
+ "filter": [
+ "to-boolean",
+ [
+ "get",
+ "shop"
+ ]
+ ],
+ "layout": {
+ "icon-size": {
+ "stops": [
+ [
+ 16,
+ 0.5
+ ],
+ [
+ 19,
+ 0.5
+ ],
+ [
+ 20,
+ 1
+ ]
+ ]
+ },
+ "symbol-placement": "point",
+ "icon-optional": true,
+ "text-font": [
+ "noto_sans_regular"
+ ],
+ "icon-image": [
+ "match",
+ [
+ "get",
+ "shop"
+ ],
+ "alcohol",
+ "basics:icon-alcohol_shop",
+ "bakery",
+ "basics:icon-bakery",
+ "beauty",
+ "basics:icon-beauty",
+ "beverages",
+ "basics:icon-beverages",
+ "books",
+ "basics:icon-books",
+ "butcher",
+ "basics:icon-butcher",
+ "chemist",
+ "basics:icon-chemist",
+ "clothes",
+ "basics:icon-clothes",
+ "doityourself",
+ "basics:icon-doityourself",
+ "dry_cleaning",
+ "basics:icon-drycleaning",
+ "florist",
+ "basics:icon-florist",
+ "furniture",
+ "basics:icon-furniture",
+ "garden_centre",
+ "basics:icon-garden_centre",
+ "general",
+ "basics:icon-shop",
+ "gift",
+ "basics:icon-gift",
+ "greengrocer",
+ "basics:icon-greengrocer",
+ "hairdresser",
+ "basics:icon-hairdresser",
+ "hardware",
+ "basics:icon-hardware",
+ "jewelry",
+ "basics:icon-jewelry_store",
+ "kiosk",
+ "basics:icon-kiosk",
+ "laundry",
+ "basics:icon-laundry",
+ "newsagent",
+ "basics:icon-newsagent",
+ "optican",
+ "basics:icon-optician",
+ "outdoor",
+ "basics:icon-outdoor",
+ "shoes",
+ "basics:icon-shoes",
+ "sports",
+ "basics:icon-sports",
+ "stationery",
+ "basics:icon-stationery",
+ "toys",
+ "basics:icon-toys",
+ "travel_agency",
+ "basics:icon-travel_agent",
+ "video",
+ "basics:icon-video",
+ "basics:icon-shop"
+ ]
+ },
+ "paint": {
+ "icon-opacity": {
+ "stops": [
+ [
+ 16,
+ 0
+ ],
+ [
+ 17,
+ 0.4
+ ]
+ ]
+ },
+ "text-opacity": {
+ "stops": [
+ [
+ 16,
+ 0
+ ],
+ [
+ 17,
+ 0.4
+ ]
+ ]
+ },
+ "icon-color": "hsl(0,0%,67%)",
+ "text-color": "hsl(0,0%,67%)"
+ }
+ },
+ {
+ "id": "poi-man_made",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "pois",
+ "minzoom": 16,
+ "filter": [
+ "to-boolean",
+ [
+ "get",
+ "man_made"
+ ]
+ ],
+ "layout": {
+ "icon-size": {
+ "stops": [
+ [
+ 16,
+ 0.5
+ ],
+ [
+ 19,
+ 0.5
+ ],
+ [
+ 20,
+ 1
+ ]
+ ]
+ },
+ "symbol-placement": "point",
+ "icon-optional": true,
+ "text-font": [
+ "noto_sans_regular"
+ ],
+ "icon-image": [
+ "match",
+ [
+ "get",
+ "man_made"
+ ],
+ "lighthouse",
+ "basics:icon-lighthouse",
+ "surveillance",
+ "basics:icon-surveillance",
+ "tower",
+ "basics:icon-observation_tower",
+ "watermill",
+ "basics:icon-watermill",
+ "windmill",
+ "basics:icon-windmill",
+ ""
+ ]
+ },
+ "paint": {
+ "icon-opacity": {
+ "stops": [
+ [
+ 16,
+ 0
+ ],
+ [
+ 17,
+ 0.4
+ ]
+ ]
+ },
+ "text-opacity": {
+ "stops": [
+ [
+ 16,
+ 0
+ ],
+ [
+ 17,
+ 0.4
+ ]
+ ]
+ },
+ "icon-color": "hsl(0,0%,67%)",
+ "text-color": "hsl(0,0%,67%)"
+ }
+ },
+ {
+ "id": "poi-historic",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "pois",
+ "minzoom": 16,
+ "filter": [
+ "to-boolean",
+ [
+ "get",
+ "historic"
+ ]
+ ],
+ "layout": {
+ "icon-size": {
+ "stops": [
+ [
+ 16,
+ 0.5
+ ],
+ [
+ 19,
+ 0.5
+ ],
+ [
+ 20,
+ 1
+ ]
+ ]
+ },
+ "symbol-placement": "point",
+ "icon-optional": true,
+ "text-font": [
+ "noto_sans_regular"
+ ],
+ "icon-image": [
+ "match",
+ [
+ "get",
+ "historic"
+ ],
+ "artwork",
+ "basics:icon-artwork",
+ "castle",
+ "basics:icon-castle",
+ "monument",
+ "basics:icon-monument",
+ "wayside_shrine",
+ "basics:icon-shrine",
+ "basics:icon-historic"
+ ]
+ },
+ "paint": {
+ "icon-opacity": {
+ "stops": [
+ [
+ 16,
+ 0
+ ],
+ [
+ 17,
+ 0.4
+ ]
+ ]
+ },
+ "text-opacity": {
+ "stops": [
+ [
+ 16,
+ 0
+ ],
+ [
+ 17,
+ 0.4
+ ]
+ ]
+ },
+ "icon-color": "hsl(0,0%,67%)",
+ "text-color": "hsl(0,0%,67%)"
+ }
+ },
+ {
+ "id": "poi-emergency",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "pois",
+ "minzoom": 16,
+ "filter": [
+ "to-boolean",
+ [
+ "get",
+ "emergency"
+ ]
+ ],
+ "layout": {
+ "icon-size": {
+ "stops": [
+ [
+ 16,
+ 0.5
+ ],
+ [
+ 19,
+ 0.5
+ ],
+ [
+ 20,
+ 1
+ ]
+ ]
+ },
+ "symbol-placement": "point",
+ "icon-optional": true,
+ "text-font": [
+ "noto_sans_regular"
+ ],
+ "icon-image": [
+ "match",
+ [
+ "get",
+ "emergency"
+ ],
+ "defibrillator",
+ "basics:icon-defibrillator",
+ "fire_hydrant",
+ "basics:icon-hydrant",
+ "phone",
+ "basics:icon-emergency_phone",
+ ""
+ ]
+ },
+ "paint": {
+ "icon-opacity": {
+ "stops": [
+ [
+ 16,
+ 0
+ ],
+ [
+ 17,
+ 0.4
+ ]
+ ]
+ },
+ "text-opacity": {
+ "stops": [
+ [
+ 16,
+ 0
+ ],
+ [
+ 17,
+ 0.4
+ ]
+ ]
+ },
+ "icon-color": "hsl(0,0%,67%)",
+ "text-color": "hsl(0,0%,67%)"
+ }
+ },
+ {
+ "id": "poi-highway",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "pois",
+ "minzoom": 16,
+ "filter": [
+ "to-boolean",
+ [
+ "get",
+ "highway"
+ ]
+ ],
+ "layout": {
+ "icon-size": {
+ "stops": [
+ [
+ 16,
+ 0.5
+ ],
+ [
+ 19,
+ 0.5
+ ],
+ [
+ 20,
+ 1
+ ]
+ ]
+ },
+ "symbol-placement": "point",
+ "icon-optional": true,
+ "text-font": [
+ "noto_sans_regular"
+ ]
+ },
+ "paint": {
+ "icon-opacity": {
+ "stops": [
+ [
+ 16,
+ 0
+ ],
+ [
+ 17,
+ 0.4
+ ]
+ ]
+ },
+ "text-opacity": {
+ "stops": [
+ [
+ 16,
+ 0
+ ],
+ [
+ 17,
+ 0.4
+ ]
+ ]
+ },
+ "icon-color": "hsl(0,0%,67%)",
+ "text-color": "hsl(0,0%,67%)"
+ }
+ },
+ {
+ "id": "poi-office",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "pois",
+ "minzoom": 16,
+ "filter": [
+ "to-boolean",
+ [
+ "get",
+ "office"
+ ]
+ ],
+ "layout": {
+ "icon-size": {
+ "stops": [
+ [
+ 16,
+ 0.5
+ ],
+ [
+ 19,
+ 0.5
+ ],
+ [
+ 20,
+ 1
+ ]
+ ]
+ },
+ "symbol-placement": "point",
+ "icon-optional": true,
+ "text-font": [
+ "noto_sans_regular"
+ ]
+ },
+ "paint": {
+ "icon-opacity": {
+ "stops": [
+ [
+ 16,
+ 0
+ ],
+ [
+ 17,
+ 0.4
+ ]
+ ]
+ },
+ "text-opacity": {
+ "stops": [
+ [
+ 16,
+ 0
+ ],
+ [
+ 17,
+ 0.4
+ ]
+ ]
+ },
+ "icon-color": "hsl(0,0%,67%)",
+ "text-color": "hsl(0,0%,67%)"
+ }
+ },
+ {
+ "id": "boundary-country:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "boundaries",
+ "filter": [
+ "all",
+ [
+ "==",
+ "admin_level",
+ 2
+ ],
+ [
+ "!=",
+ "maritime",
+ true
+ ],
+ [
+ "!=",
+ "disputed",
+ true
+ ],
+ [
+ "!=",
+ "coastline",
+ true
+ ]
+ ],
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgb(15,10,6)",
+ "line-blur": 1,
+ "line-width": {
+ "stops": [
+ [
+ 2,
+ 0
+ ],
+ [
+ 3,
+ 2
+ ],
+ [
+ 10,
+ 8
+ ]
+ ]
+ },
+ "line-opacity": 0.75
+ }
+ },
+ {
+ "id": "boundary-country-disputed:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "boundaries",
+ "filter": [
+ "all",
+ [
+ "==",
+ "admin_level",
+ 2
+ ],
+ [
+ "==",
+ "disputed",
+ true
+ ],
+ [
+ "!=",
+ "maritime",
+ true
+ ],
+ [
+ "!=",
+ "coastline",
+ true
+ ]
+ ],
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 2,
+ 0
+ ],
+ [
+ 3,
+ 2
+ ],
+ [
+ 10,
+ 8
+ ]
+ ]
+ },
+ "line-opacity": 0.75,
+ "line-color": "rgb(15,10,6)"
+ }
+ },
+ {
+ "id": "boundary-state:outline",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "boundaries",
+ "filter": [
+ "all",
+ [
+ "==",
+ "admin_level",
+ 4
+ ],
+ [
+ "!=",
+ "maritime",
+ true
+ ],
+ [
+ "!=",
+ "disputed",
+ true
+ ],
+ [
+ "!=",
+ "coastline",
+ true
+ ]
+ ],
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgb(14,10,5)",
+ "line-blur": 1,
+ "line-width": {
+ "stops": [
+ [
+ 7,
+ 0
+ ],
+ [
+ 8,
+ 2
+ ],
+ [
+ 10,
+ 4
+ ]
+ ]
+ },
+ "line-opacity": 0.75
+ }
+ },
+ {
+ "id": "boundary-country",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "boundaries",
+ "filter": [
+ "all",
+ [
+ "==",
+ "admin_level",
+ 2
+ ],
+ [
+ "!=",
+ "maritime",
+ true
+ ],
+ [
+ "!=",
+ "disputed",
+ true
+ ],
+ [
+ "!=",
+ "coastline",
+ true
+ ]
+ ],
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "hsl(240,24%,28%)",
+ "line-width": {
+ "stops": [
+ [
+ 2,
+ 0
+ ],
+ [
+ 3,
+ 1
+ ],
+ [
+ 10,
+ 4
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "boundary-country-disputed",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "boundaries",
+ "filter": [
+ "all",
+ [
+ "==",
+ "admin_level",
+ 2
+ ],
+ [
+ "==",
+ "disputed",
+ true
+ ],
+ [
+ "!=",
+ "maritime",
+ true
+ ],
+ [
+ "!=",
+ "coastline",
+ true
+ ]
+ ],
+ "layout": {
+ "line-cap": "square"
+ },
+ "paint": {
+ "line-width": {
+ "stops": [
+ [
+ 2,
+ 0
+ ],
+ [
+ 3,
+ 1
+ ],
+ [
+ 10,
+ 4
+ ]
+ ]
+ },
+ "line-color": "hsl(246,17%,23%)",
+ "line-dasharray": [
+ 2,
+ 1
+ ]
+ }
+ },
+ {
+ "id": "boundary-state",
+ "type": "line",
+ "source": "versatiles-shortbread",
+ "source-layer": "boundaries",
+ "filter": [
+ "all",
+ [
+ "==",
+ "admin_level",
+ 4
+ ],
+ [
+ "!=",
+ "maritime",
+ true
+ ],
+ [
+ "!=",
+ "disputed",
+ true
+ ],
+ [
+ "!=",
+ "coastline",
+ true
+ ]
+ ],
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "hsl(240,24%,28%)",
+ "line-width": {
+ "stops": [
+ [
+ 7,
+ 0
+ ],
+ [
+ 8,
+ 1
+ ],
+ [
+ 10,
+ 2
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "label-address-housenumber",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "addresses",
+ "minzoom": 17,
+ "filter": [
+ "has",
+ "housenumber"
+ ],
+ "layout": {
+ "text-field": "{housenumber}",
+ "text-font": [
+ "noto_sans_regular"
+ ],
+ "symbol-placement": "point",
+ "text-anchor": "center",
+ "text-size": {
+ "stops": [
+ [
+ 17,
+ 8
+ ],
+ [
+ 19,
+ 10
+ ]
+ ]
+ }
+ },
+ "paint": {
+ "icon-color": "rgb(90,84,78)",
+ "text-color": "rgb(90,84,78)",
+ "text-halo-color": "rgb(21,16,10)",
+ "text-halo-width": 2,
+ "text-halo-blur": 1
+ }
+ },
+ {
+ "id": "label-motorway-shield",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "street_labels",
+ "minzoom": 14,
+ "filter": [
+ "==",
+ "kind",
+ "motorway"
+ ],
+ "layout": {
+ "text-field": "{ref}",
+ "text-font": [
+ "noto_sans_bold"
+ ],
+ "symbol-placement": "line",
+ "text-anchor": "center",
+ "text-size": {
+ "stops": [
+ [
+ 14,
+ 10
+ ],
+ [
+ 18,
+ 12
+ ],
+ [
+ 20,
+ 16
+ ]
+ ]
+ }
+ },
+ "paint": {
+ "icon-color": "hsl(0,0%,0%)",
+ "text-color": "hsl(0,0%,0%)",
+ "text-halo-color": "hsl(34,90.0%,21.8%)",
+ "text-halo-width": 0.1,
+ "text-halo-blur": 1
+ }
+ },
+ {
+ "id": "label-street-pedestrian",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "street_labels",
+ "minzoom": 12,
+ "filter": [
+ "==",
+ "kind",
+ "pedestrian"
+ ],
+ "layout": {
+ "text-field": [
+ "coalesce",
+ [
+ "get",
+ "name"
+ ],
+ [
+ "get",
+ "name_en"
+ ],
+ [
+ "get",
+ "name_de"
+ ]
+ ],
+ "text-font": [
+ "noto_sans_regular"
+ ],
+ "symbol-placement": "line",
+ "text-anchor": "center",
+ "text-size": {
+ "stops": [
+ [
+ 12,
+ 10
+ ],
+ [
+ 15,
+ 13
+ ]
+ ]
+ }
+ },
+ "paint": {
+ "icon-color": "hsl(240,14%,77%)",
+ "text-color": "hsl(240,14%,77%)",
+ "text-halo-color": "hsla(0,0%,0%,0.8)",
+ "text-halo-width": 2,
+ "text-halo-blur": 1
+ }
+ },
+ {
+ "id": "label-street-livingstreet",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "street_labels",
+ "minzoom": 12,
+ "filter": [
+ "==",
+ "kind",
+ "living_street"
+ ],
+ "layout": {
+ "text-field": [
+ "coalesce",
+ [
+ "get",
+ "name"
+ ],
+ [
+ "get",
+ "name_en"
+ ],
+ [
+ "get",
+ "name_de"
+ ]
+ ],
+ "text-font": [
+ "noto_sans_regular"
+ ],
+ "symbol-placement": "line",
+ "text-anchor": "center",
+ "text-size": {
+ "stops": [
+ [
+ 12,
+ 10
+ ],
+ [
+ 15,
+ 13
+ ]
+ ]
+ }
+ },
+ "paint": {
+ "icon-color": "hsl(240,14%,77%)",
+ "text-color": "hsl(240,14%,77%)",
+ "text-halo-color": "hsla(0,0%,0%,0.8)",
+ "text-halo-width": 2,
+ "text-halo-blur": 1
+ }
+ },
+ {
+ "id": "label-street-residential",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "street_labels",
+ "minzoom": 12,
+ "filter": [
+ "==",
+ "kind",
+ "residential"
+ ],
+ "layout": {
+ "text-field": [
+ "coalesce",
+ [
+ "get",
+ "name"
+ ],
+ [
+ "get",
+ "name_en"
+ ],
+ [
+ "get",
+ "name_de"
+ ]
+ ],
+ "text-font": [
+ "noto_sans_regular"
+ ],
+ "symbol-placement": "line",
+ "text-anchor": "center",
+ "text-size": {
+ "stops": [
+ [
+ 12,
+ 10
+ ],
+ [
+ 15,
+ 13
+ ]
+ ]
+ }
+ },
+ "paint": {
+ "icon-color": "hsl(240,14%,77%)",
+ "text-color": "hsl(240,14%,77%)",
+ "text-halo-color": "hsla(0,0%,0%,0.8)",
+ "text-halo-width": 2,
+ "text-halo-blur": 1
+ }
+ },
+ {
+ "id": "label-street-unclassified",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "street_labels",
+ "minzoom": 12,
+ "filter": [
+ "==",
+ "kind",
+ "unclassified"
+ ],
+ "layout": {
+ "text-field": [
+ "coalesce",
+ [
+ "get",
+ "name"
+ ],
+ [
+ "get",
+ "name_en"
+ ],
+ [
+ "get",
+ "name_de"
+ ]
+ ],
+ "text-font": [
+ "noto_sans_regular"
+ ],
+ "symbol-placement": "line",
+ "text-anchor": "center",
+ "text-size": {
+ "stops": [
+ [
+ 12,
+ 10
+ ],
+ [
+ 15,
+ 13
+ ]
+ ]
+ }
+ },
+ "paint": {
+ "icon-color": "hsl(240,14%,77%)",
+ "text-color": "hsl(240,14%,77%)",
+ "text-halo-color": "hsla(0,0%,0%,0.8)",
+ "text-halo-width": 2,
+ "text-halo-blur": 1
+ }
+ },
+ {
+ "id": "label-street-tertiary",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "street_labels",
+ "minzoom": 12,
+ "filter": [
+ "==",
+ "kind",
+ "tertiary"
+ ],
+ "layout": {
+ "text-field": [
+ "coalesce",
+ [
+ "get",
+ "name"
+ ],
+ [
+ "get",
+ "name_en"
+ ],
+ [
+ "get",
+ "name_de"
+ ]
+ ],
+ "text-font": [
+ "noto_sans_regular"
+ ],
+ "symbol-placement": "line",
+ "text-anchor": "center",
+ "text-size": {
+ "stops": [
+ [
+ 12,
+ 10
+ ],
+ [
+ 15,
+ 13
+ ]
+ ]
+ }
+ },
+ "paint": {
+ "icon-color": "hsl(240,14%,77%)",
+ "text-color": "hsl(240,14%,77%)",
+ "text-halo-color": "hsla(0,0%,0%,0.8)",
+ "text-halo-width": 2,
+ "text-halo-blur": 1
+ }
+ },
+ {
+ "id": "label-street-secondary",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "street_labels",
+ "minzoom": 12,
+ "filter": [
+ "==",
+ "kind",
+ "secondary"
+ ],
+ "layout": {
+ "text-field": [
+ "coalesce",
+ [
+ "get",
+ "name"
+ ],
+ [
+ "get",
+ "name_en"
+ ],
+ [
+ "get",
+ "name_de"
+ ]
+ ],
+ "text-font": [
+ "noto_sans_regular"
+ ],
+ "symbol-placement": "line",
+ "text-anchor": "center",
+ "text-size": {
+ "stops": [
+ [
+ 12,
+ 10
+ ],
+ [
+ 15,
+ 13
+ ]
+ ]
+ }
+ },
+ "paint": {
+ "icon-color": "hsl(240,14%,77%)",
+ "text-color": "hsl(240,14%,77%)",
+ "text-halo-color": "hsla(0,0%,0%,0.8)",
+ "text-halo-width": 2,
+ "text-halo-blur": 1
+ }
+ },
+ {
+ "id": "label-street-primary",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "street_labels",
+ "minzoom": 12,
+ "filter": [
+ "==",
+ "kind",
+ "primary"
+ ],
+ "layout": {
+ "text-field": [
+ "coalesce",
+ [
+ "get",
+ "name"
+ ],
+ [
+ "get",
+ "name_en"
+ ],
+ [
+ "get",
+ "name_de"
+ ]
+ ],
+ "text-font": [
+ "noto_sans_regular"
+ ],
+ "symbol-placement": "line",
+ "text-anchor": "center",
+ "text-size": {
+ "stops": [
+ [
+ 12,
+ 10
+ ],
+ [
+ 15,
+ 13
+ ]
+ ]
+ }
+ },
+ "paint": {
+ "icon-color": "hsl(240,14%,77%)",
+ "text-color": "hsl(240,14%,77%)",
+ "text-halo-color": "hsla(0,0%,0%,0.8)",
+ "text-halo-width": 2,
+ "text-halo-blur": 1
+ }
+ },
+ {
+ "id": "label-street-trunk",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "street_labels",
+ "minzoom": 12,
+ "filter": [
+ "==",
+ "kind",
+ "trunk"
+ ],
+ "layout": {
+ "text-field": [
+ "coalesce",
+ [
+ "get",
+ "name"
+ ],
+ [
+ "get",
+ "name_en"
+ ],
+ [
+ "get",
+ "name_de"
+ ]
+ ],
+ "text-font": [
+ "noto_sans_regular"
+ ],
+ "symbol-placement": "line",
+ "text-anchor": "center",
+ "text-size": {
+ "stops": [
+ [
+ 12,
+ 10
+ ],
+ [
+ 15,
+ 13
+ ]
+ ]
+ }
+ },
+ "paint": {
+ "icon-color": "hsl(240,14%,77%)",
+ "text-color": "hsl(240,14%,77%)",
+ "text-halo-color": "hsla(0,0%,0%,0.8)",
+ "text-halo-width": 2,
+ "text-halo-blur": 1
+ }
+ },
+ {
+ "id": "label-street-track",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "street_labels",
+ "minzoom": 12,
+ "filter": [
+ "==",
+ "kind",
+ "track"
+ ],
+ "layout": {
+ "text-field": [
+ "coalesce",
+ [
+ "get",
+ "name"
+ ],
+ [
+ "get",
+ "name_en"
+ ],
+ [
+ "get",
+ "name_de"
+ ]
+ ],
+ "text-font": [
+ "noto_sans_regular"
+ ],
+ "symbol-placement": "line",
+ "text-anchor": "center",
+ "text-size": {
+ "stops": [
+ [
+ 12,
+ 10
+ ],
+ [
+ 15,
+ 13
+ ]
+ ]
+ }
+ },
+ "paint": {
+ "icon-color": "hsl(240,14%,77%)",
+ "text-color": "hsl(240,14%,77%)",
+ "text-halo-color": "hsla(0,0%,0%,0.8)",
+ "text-halo-width": 2,
+ "text-halo-blur": 1
+ }
+ },
+ {
+ "id": "label-place-neighbourhood",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "place_labels",
+ "minzoom": 14,
+ "filter": [
+ "==",
+ "kind",
+ "neighbourhood"
+ ],
+ "layout": {
+ "text-field": [
+ "coalesce",
+ [
+ "get",
+ "name"
+ ],
+ [
+ "get",
+ "name_en"
+ ],
+ [
+ "get",
+ "name_de"
+ ]
+ ],
+ "symbol-sort-key": [
+ "-",
+ [
+ "to-number",
+ [
+ "get",
+ "population"
+ ],
+ 0
+ ]
+ ],
+ "text-font": [
+ "noto_sans_regular"
+ ],
+ "text-size": {
+ "stops": [
+ [
+ 14,
+ 12
+ ]
+ ]
+ },
+ "text-transform": "uppercase"
+ },
+ "paint": {
+ "icon-color": "rgb(182,209,215)",
+ "text-color": "rgb(182,209,215)",
+ "text-halo-color": "hsla(0,0%,0%,0.8)",
+ "text-halo-width": 2,
+ "text-halo-blur": 1
+ }
+ },
+ {
+ "id": "label-place-quarter",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "place_labels",
+ "minzoom": 13,
+ "filter": [
+ "==",
+ "kind",
+ "quarter"
+ ],
+ "layout": {
+ "text-field": [
+ "coalesce",
+ [
+ "get",
+ "name"
+ ],
+ [
+ "get",
+ "name_en"
+ ],
+ [
+ "get",
+ "name_de"
+ ]
+ ],
+ "symbol-sort-key": [
+ "-",
+ [
+ "to-number",
+ [
+ "get",
+ "population"
+ ],
+ 0
+ ]
+ ],
+ "text-font": [
+ "noto_sans_regular"
+ ],
+ "text-size": {
+ "stops": [
+ [
+ 13,
+ 13
+ ]
+ ]
+ },
+ "text-transform": "uppercase"
+ },
+ "paint": {
+ "icon-color": "rgb(182,204,215)",
+ "text-color": "rgb(182,204,215)",
+ "text-halo-color": "hsla(0,0%,0%,0.8)",
+ "text-halo-width": 2,
+ "text-halo-blur": 1
+ }
+ },
+ {
+ "id": "label-place-suburb",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "place_labels",
+ "minzoom": 11,
+ "filter": [
+ "==",
+ "kind",
+ "suburb"
+ ],
+ "layout": {
+ "text-field": [
+ "coalesce",
+ [
+ "get",
+ "name"
+ ],
+ [
+ "get",
+ "name_en"
+ ],
+ [
+ "get",
+ "name_de"
+ ]
+ ],
+ "symbol-sort-key": [
+ "-",
+ [
+ "to-number",
+ [
+ "get",
+ "population"
+ ],
+ 0
+ ]
+ ],
+ "text-font": [
+ "noto_sans_regular"
+ ],
+ "text-size": {
+ "stops": [
+ [
+ 11,
+ 11
+ ],
+ [
+ 13,
+ 14
+ ]
+ ]
+ },
+ "text-transform": "uppercase"
+ },
+ "paint": {
+ "icon-color": "rgb(182,198,215)",
+ "text-color": "rgb(182,198,215)",
+ "text-halo-color": "hsla(0,0%,0%,0.8)",
+ "text-halo-width": 2,
+ "text-halo-blur": 1
+ }
+ },
+ {
+ "id": "label-place-hamlet",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "place_labels",
+ "minzoom": 13,
+ "filter": [
+ "==",
+ "kind",
+ "hamlet"
+ ],
+ "layout": {
+ "text-field": [
+ "coalesce",
+ [
+ "get",
+ "name"
+ ],
+ [
+ "get",
+ "name_en"
+ ],
+ [
+ "get",
+ "name_de"
+ ]
+ ],
+ "symbol-sort-key": [
+ "-",
+ [
+ "to-number",
+ [
+ "get",
+ "population"
+ ],
+ 0
+ ]
+ ],
+ "text-font": [
+ "noto_sans_regular"
+ ],
+ "text-size": {
+ "stops": [
+ [
+ 10,
+ 11
+ ],
+ [
+ 12,
+ 14
+ ]
+ ]
+ }
+ },
+ "paint": {
+ "icon-color": "rgb(182,190,215)",
+ "text-color": "rgb(182,190,215)",
+ "text-halo-color": "hsla(0,0%,0%,0.8)",
+ "text-halo-width": 2,
+ "text-halo-blur": 1
+ }
+ },
+ {
+ "id": "label-place-village",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "place_labels",
+ "minzoom": 11,
+ "filter": [
+ "==",
+ "kind",
+ "village"
+ ],
+ "layout": {
+ "text-field": [
+ "coalesce",
+ [
+ "get",
+ "name"
+ ],
+ [
+ "get",
+ "name_en"
+ ],
+ [
+ "get",
+ "name_de"
+ ]
+ ],
+ "symbol-sort-key": [
+ "-",
+ [
+ "to-number",
+ [
+ "get",
+ "population"
+ ],
+ 0
+ ]
+ ],
+ "text-font": [
+ "noto_sans_regular"
+ ],
+ "text-size": {
+ "stops": [
+ [
+ 9,
+ 11
+ ],
+ [
+ 12,
+ 14
+ ]
+ ]
+ }
+ },
+ "paint": {
+ "icon-color": "rgb(182,190,215)",
+ "text-color": "rgb(182,190,215)",
+ "text-halo-color": "hsla(0,0%,0%,0.8)",
+ "text-halo-width": 2,
+ "text-halo-blur": 1
+ }
+ },
+ {
+ "id": "label-place-town",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "place_labels",
+ "minzoom": 9,
+ "filter": [
+ "==",
+ "kind",
+ "town"
+ ],
+ "layout": {
+ "text-field": [
+ "coalesce",
+ [
+ "get",
+ "name"
+ ],
+ [
+ "get",
+ "name_en"
+ ],
+ [
+ "get",
+ "name_de"
+ ]
+ ],
+ "symbol-sort-key": [
+ "-",
+ [
+ "to-number",
+ [
+ "get",
+ "population"
+ ],
+ 0
+ ]
+ ],
+ "text-font": [
+ "noto_sans_regular"
+ ],
+ "text-size": {
+ "stops": [
+ [
+ 8,
+ 11
+ ],
+ [
+ 12,
+ 14
+ ]
+ ]
+ }
+ },
+ "paint": {
+ "icon-color": "rgb(182,190,215)",
+ "text-color": "rgb(182,190,215)",
+ "text-halo-color": "hsla(0,0%,0%,0.8)",
+ "text-halo-width": 2,
+ "text-halo-blur": 1
+ }
+ },
+ {
+ "id": "label-boundary-state",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "boundary_labels",
+ "minzoom": 5,
+ "filter": [
+ "in",
+ "admin_level",
+ 4,
+ "4"
+ ],
+ "layout": {
+ "text-field": [
+ "coalesce",
+ [
+ "get",
+ "name"
+ ],
+ [
+ "get",
+ "name_en"
+ ],
+ [
+ "get",
+ "name_de"
+ ]
+ ],
+ "text-font": [
+ "noto_sans_regular"
+ ],
+ "text-transform": "uppercase",
+ "text-anchor": "top",
+ "text-offset": [
+ 0,
+ 0.2
+ ],
+ "text-padding": 0,
+ "text-optional": true,
+ "text-size": {
+ "stops": [
+ [
+ 5,
+ 8
+ ],
+ [
+ 8,
+ 12
+ ]
+ ]
+ }
+ },
+ "paint": {
+ "icon-color": "rgb(178,178,194)",
+ "text-color": "rgb(178,178,194)",
+ "text-halo-color": "hsla(0,0%,0%,0.8)",
+ "text-halo-width": 2,
+ "text-halo-blur": 1
+ }
+ },
+ {
+ "id": "label-place-city",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "place_labels",
+ "minzoom": 7,
+ "filter": [
+ "==",
+ "kind",
+ "city"
+ ],
+ "layout": {
+ "text-field": [
+ "coalesce",
+ [
+ "get",
+ "name"
+ ],
+ [
+ "get",
+ "name_en"
+ ],
+ [
+ "get",
+ "name_de"
+ ]
+ ],
+ "symbol-sort-key": [
+ "-",
+ [
+ "to-number",
+ [
+ "get",
+ "population"
+ ],
+ 0
+ ]
+ ],
+ "text-font": [
+ "noto_sans_regular"
+ ],
+ "text-size": {
+ "stops": [
+ [
+ 7,
+ 11
+ ],
+ [
+ 10,
+ 14
+ ]
+ ]
+ }
+ },
+ "paint": {
+ "icon-color": "rgb(182,190,215)",
+ "text-color": "rgb(182,190,215)",
+ "text-halo-color": "hsla(0,0%,0%,0.8)",
+ "text-halo-width": 2,
+ "text-halo-blur": 1
+ }
+ },
+ {
+ "id": "label-place-statecapital",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "place_labels",
+ "minzoom": 6,
+ "filter": [
+ "==",
+ "kind",
+ "state_capital"
+ ],
+ "layout": {
+ "text-field": [
+ "coalesce",
+ [
+ "get",
+ "name"
+ ],
+ [
+ "get",
+ "name_en"
+ ],
+ [
+ "get",
+ "name_de"
+ ]
+ ],
+ "symbol-sort-key": [
+ "-",
+ [
+ "to-number",
+ [
+ "get",
+ "population"
+ ],
+ 0
+ ]
+ ],
+ "text-font": [
+ "noto_sans_regular"
+ ],
+ "text-size": {
+ "stops": [
+ [
+ 6,
+ 11
+ ],
+ [
+ 10,
+ 15
+ ]
+ ]
+ }
+ },
+ "paint": {
+ "icon-color": "rgb(182,190,215)",
+ "text-color": "rgb(182,190,215)",
+ "text-halo-color": "hsla(0,0%,0%,0.8)",
+ "text-halo-width": 2,
+ "text-halo-blur": 1
+ }
+ },
+ {
+ "id": "label-place-capital",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "place_labels",
+ "minzoom": 5,
+ "filter": [
+ "==",
+ "kind",
+ "capital"
+ ],
+ "layout": {
+ "text-field": [
+ "coalesce",
+ [
+ "get",
+ "name"
+ ],
+ [
+ "get",
+ "name_en"
+ ],
+ [
+ "get",
+ "name_de"
+ ]
+ ],
+ "symbol-sort-key": [
+ "-",
+ [
+ "to-number",
+ [
+ "get",
+ "population"
+ ],
+ 0
+ ]
+ ],
+ "text-font": [
+ "noto_sans_regular"
+ ],
+ "text-size": {
+ "stops": [
+ [
+ 5,
+ 12
+ ],
+ [
+ 10,
+ 16
+ ]
+ ]
+ }
+ },
+ "paint": {
+ "icon-color": "rgb(182,190,215)",
+ "text-color": "rgb(182,190,215)",
+ "text-halo-color": "hsla(0,0%,0%,0.8)",
+ "text-halo-width": 2,
+ "text-halo-blur": 1
+ }
+ },
+ {
+ "id": "label-boundary-country-small",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "boundary_labels",
+ "minzoom": 4,
+ "filter": [
+ "all",
+ [
+ "in",
+ "admin_level",
+ 2,
+ "2"
+ ],
+ [
+ "<=",
+ "way_area",
+ 10000000
+ ]
+ ],
+ "layout": {
+ "text-field": [
+ "coalesce",
+ [
+ "get",
+ "name"
+ ],
+ [
+ "get",
+ "name_en"
+ ],
+ [
+ "get",
+ "name_de"
+ ]
+ ],
+ "text-font": [
+ "noto_sans_regular"
+ ],
+ "text-transform": "uppercase",
+ "text-anchor": "top",
+ "text-offset": [
+ 0,
+ 0.2
+ ],
+ "text-padding": 0,
+ "text-optional": true,
+ "text-size": {
+ "stops": [
+ [
+ 4,
+ 8
+ ],
+ [
+ 5,
+ 11
+ ]
+ ]
+ }
+ },
+ "paint": {
+ "icon-color": "hsl(240,14%,77%)",
+ "text-color": "hsl(240,14%,77%)",
+ "text-halo-color": "hsla(0,0%,0%,0.8)",
+ "text-halo-width": 2,
+ "text-halo-blur": 1
+ }
+ },
+ {
+ "id": "label-boundary-country-medium",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "boundary_labels",
+ "minzoom": 3,
+ "filter": [
+ "all",
+ [
+ "in",
+ "admin_level",
+ 2,
+ "2"
+ ],
+ [
+ "<",
+ "way_area",
+ 90000000
+ ],
+ [
+ ">",
+ "way_area",
+ 10000000
+ ]
+ ],
+ "layout": {
+ "text-field": [
+ "coalesce",
+ [
+ "get",
+ "name"
+ ],
+ [
+ "get",
+ "name_en"
+ ],
+ [
+ "get",
+ "name_de"
+ ]
+ ],
+ "text-font": [
+ "noto_sans_regular"
+ ],
+ "text-transform": "uppercase",
+ "text-anchor": "top",
+ "text-offset": [
+ 0,
+ 0.2
+ ],
+ "text-padding": 0,
+ "text-optional": true,
+ "text-size": {
+ "stops": [
+ [
+ 3,
+ 8
+ ],
+ [
+ 5,
+ 12
+ ]
+ ]
+ }
+ },
+ "paint": {
+ "icon-color": "hsl(240,14%,77%)",
+ "text-color": "hsl(240,14%,77%)",
+ "text-halo-color": "hsla(0,0%,0%,0.8)",
+ "text-halo-width": 2,
+ "text-halo-blur": 1
+ }
+ },
+ {
+ "id": "label-boundary-country-large",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "boundary_labels",
+ "minzoom": 2,
+ "filter": [
+ "all",
+ [
+ "in",
+ "admin_level",
+ 2,
+ "2"
+ ],
+ [
+ ">=",
+ "way_area",
+ 90000000
+ ]
+ ],
+ "layout": {
+ "text-field": [
+ "coalesce",
+ [
+ "get",
+ "name"
+ ],
+ [
+ "get",
+ "name_en"
+ ],
+ [
+ "get",
+ "name_de"
+ ]
+ ],
+ "text-font": [
+ "noto_sans_regular"
+ ],
+ "text-transform": "uppercase",
+ "text-anchor": "top",
+ "text-offset": [
+ 0,
+ 0.2
+ ],
+ "text-padding": 0,
+ "text-optional": true,
+ "text-size": {
+ "stops": [
+ [
+ 2,
+ 8
+ ],
+ [
+ 5,
+ 13
+ ]
+ ]
+ }
+ },
+ "paint": {
+ "icon-color": "hsl(240,14%,77%)",
+ "text-color": "hsl(240,14%,77%)",
+ "text-halo-color": "hsla(0,0%,0%,0.8)",
+ "text-halo-width": 2,
+ "text-halo-blur": 1
+ }
+ },
+ {
+ "id": "marking-oneway",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 16,
+ "filter": [
+ "all",
+ [
+ "==",
+ "oneway",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "trunk",
+ "primary",
+ "secondary",
+ "tertiary",
+ "unclassified",
+ "residential",
+ "living_street"
+ ]
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "symbol-spacing": 175,
+ "icon-rotate": 90,
+ "icon-rotation-alignment": "map",
+ "icon-padding": 5,
+ "symbol-avoid-edges": true,
+ "icon-image": "basics:marking-arrow",
+ "text-font": [
+ "noto_sans_regular"
+ ]
+ },
+ "paint": {
+ "icon-opacity": {
+ "stops": [
+ [
+ 16,
+ 0
+ ],
+ [
+ 17,
+ 0.4
+ ],
+ [
+ 20,
+ 0.4
+ ]
+ ]
+ },
+ "text-opacity": {
+ "stops": [
+ [
+ 16,
+ 0
+ ],
+ [
+ 17,
+ 0.4
+ ],
+ [
+ 20,
+ 0.4
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "marking-oneway-reverse",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "streets",
+ "minzoom": 16,
+ "filter": [
+ "all",
+ [
+ "==",
+ "oneway_reverse",
+ true
+ ],
+ [
+ "in",
+ "kind",
+ "trunk",
+ "primary",
+ "secondary",
+ "tertiary",
+ "unclassified",
+ "residential",
+ "living_street"
+ ]
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "symbol-spacing": 75,
+ "icon-rotate": -90,
+ "icon-rotation-alignment": "map",
+ "icon-padding": 5,
+ "symbol-avoid-edges": true,
+ "icon-image": "basics:marking-arrow",
+ "text-font": [
+ "noto_sans_regular"
+ ]
+ },
+ "paint": {
+ "icon-opacity": {
+ "stops": [
+ [
+ 16,
+ 0
+ ],
+ [
+ 17,
+ 0.4
+ ],
+ [
+ 20,
+ 0.4
+ ]
+ ]
+ },
+ "text-opacity": {
+ "stops": [
+ [
+ 16,
+ 0
+ ],
+ [
+ 17,
+ 0.4
+ ],
+ [
+ 20,
+ 0.4
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "symbol-transit-station",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "public_transport",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "in",
+ "kind",
+ "station",
+ "halt"
+ ],
+ [
+ "!in",
+ "station",
+ "light_rail",
+ "subway"
+ ]
+ ],
+ "layout": {
+ "text-field": [
+ "coalesce",
+ [
+ "get",
+ "name"
+ ],
+ [
+ "get",
+ "name_en"
+ ],
+ [
+ "get",
+ "name_de"
+ ]
+ ],
+ "icon-size": {
+ "stops": [
+ [
+ 13,
+ 0.5
+ ],
+ [
+ 15,
+ 1
+ ]
+ ]
+ },
+ "symbol-placement": "point",
+ "icon-keep-upright": true,
+ "text-font": [
+ "noto_sans_regular"
+ ],
+ "text-size": 10,
+ "icon-anchor": "bottom",
+ "text-anchor": "top",
+ "icon-image": "basics:icon-rail"
+ },
+ "paint": {
+ "icon-opacity": 0.7,
+ "icon-color": "hsl(270,4%,60%)",
+ "text-color": "hsl(270,4%,60%)",
+ "text-halo-color": "hsla(0,0%,0%,0.8)",
+ "text-halo-width": 2,
+ "text-halo-blur": 1
+ }
+ },
+ {
+ "id": "symbol-transit-airfield",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "public_transport",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "aerodrome"
+ ],
+ [
+ "!has",
+ "iata"
+ ]
+ ],
+ "layout": {
+ "text-field": [
+ "coalesce",
+ [
+ "get",
+ "name"
+ ],
+ [
+ "get",
+ "name_en"
+ ],
+ [
+ "get",
+ "name_de"
+ ]
+ ],
+ "icon-size": {
+ "stops": [
+ [
+ 13,
+ 0.5
+ ],
+ [
+ 15,
+ 1
+ ]
+ ]
+ },
+ "symbol-placement": "point",
+ "icon-keep-upright": true,
+ "text-font": [
+ "noto_sans_regular"
+ ],
+ "text-size": 10,
+ "icon-anchor": "bottom",
+ "text-anchor": "top",
+ "icon-image": "basics:icon-airfield"
+ },
+ "paint": {
+ "icon-opacity": 0.7,
+ "icon-color": "hsl(270,4%,60%)",
+ "text-color": "hsl(270,4%,60%)",
+ "text-halo-color": "hsla(0,0%,0%,0.8)",
+ "text-halo-width": 2,
+ "text-halo-blur": 1
+ }
+ },
+ {
+ "id": "symbol-transit-airport",
+ "type": "symbol",
+ "source": "versatiles-shortbread",
+ "source-layer": "public_transport",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ [
+ "==",
+ "kind",
+ "aerodrome"
+ ],
+ [
+ "has",
+ "iata"
+ ]
+ ],
+ "layout": {
+ "text-field": [
+ "coalesce",
+ [
+ "get",
+ "name"
+ ],
+ [
+ "get",
+ "name_en"
+ ],
+ [
+ "get",
+ "name_de"
+ ]
+ ],
+ "icon-size": {
+ "stops": [
+ [
+ 12,
+ 0.5
+ ],
+ [
+ 14,
+ 1
+ ]
+ ]
+ },
+ "symbol-placement": "point",
+ "icon-keep-upright": true,
+ "text-font": [
+ "noto_sans_regular"
+ ],
+ "text-size": 10,
+ "icon-anchor": "bottom",
+ "text-anchor": "top",
+ "icon-image": "basics:icon-airport"
+ },
+ "paint": {
+ "icon-opacity": 0.7,
+ "icon-color": "hsl(270,4%,60%)",
+ "text-color": "hsl(270,4%,60%)",
+ "text-halo-color": "hsla(0,0%,0%,0.8)",
+ "text-halo-width": 2,
+ "text-halo-blur": 1
+ }
+ }
+ ],
+ "id": "80klscq"
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/reyboz/bustorino/ActivityIntro.kt b/app/src/main/java/it/reyboz/bustorino/ActivityIntro.kt
--- a/app/src/main/java/it/reyboz/bustorino/ActivityIntro.kt
+++ b/app/src/main/java/it/reyboz/bustorino/ActivityIntro.kt
@@ -32,8 +32,6 @@
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_intro)
- //check default settings and apply them
- checkApplyDefaultSettingsValues()
viewPager = findViewById(R.id.viewPager)
btnBackward = findViewById(R.id.btnPrevious)
btnForward = findViewById(R.id.btnNext)
diff --git a/app/src/main/java/it/reyboz/bustorino/ActivityPrincipal.java b/app/src/main/java/it/reyboz/bustorino/ActivityPrincipal.java
--- a/app/src/main/java/it/reyboz/bustorino/ActivityPrincipal.java
+++ b/app/src/main/java/it/reyboz/bustorino/ActivityPrincipal.java
@@ -282,8 +282,8 @@
}
//boolean onCreateComplete = true;
- //last but not least, set the good default values
- checkApplyDefaultSettingsValues();
+ //default values are set in the BustoApp
+ //checkApplyDefaultSettingsValues();
// handle the device "insets"
/*
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.rootRelativeLayout), (v, windowInsets) -> {
diff --git a/app/src/main/java/it/reyboz/bustorino/BustoApp.java b/app/src/main/java/it/reyboz/bustorino/BustoApp.java
--- a/app/src/main/java/it/reyboz/bustorino/BustoApp.java
+++ b/app/src/main/java/it/reyboz/bustorino/BustoApp.java
@@ -19,7 +19,13 @@
import android.content.Context;
+import android.content.SharedPreferences;
+import androidx.appcompat.app.AppCompatDelegate;
import androidx.multidex.MultiDexApplication;
+import androidx.preference.PreferenceManager;
+import it.reyboz.bustorino.backend.utils;
+import it.reyboz.bustorino.data.PreferencesHolder;
+import it.reyboz.bustorino.fragments.SettingsFragment;
import org.acra.ACRA;
import org.acra.BuildConfig;
import org.acra.ReportField;
@@ -30,7 +36,9 @@
import java.lang.reflect.Array;
import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import static org.acra.ReportField.*;
@@ -72,4 +80,60 @@
}
+ @Override
+ public void onCreate() {
+ super.onCreate();
+ checkApplyDefaultSettingsValues();
+ var dayorNight = PreferencesHolder.getAppThemeDayNight(this);
+ AppCompatDelegate.setDefaultNightMode(dayorNight);
+ }
+
+ /**
+ * Adjust setting to match the default ones
+ */
+ protected void checkApplyDefaultSettingsValues(){
+ SharedPreferences mainSharedPref = PreferenceManager.getDefaultSharedPreferences(this);
+ SharedPreferences.Editor editor = mainSharedPref.edit();
+ boolean edit = false;
+
+ //Day or night theme
+ var str = mainSharedPref.getString(PreferencesHolder.PREF_THEME_DAY_NIGHT, "");
+ if(str.isEmpty()){
+ editor.putString(PreferencesHolder.PREF_THEME_DAY_NIGHT, "system");
+ edit = true;
+ }
+
+ //Main fragment to show
+ String screen = mainSharedPref.getString(SettingsFragment.PREF_KEY_STARTUP_SCREEN, "");
+ if (screen.isEmpty()){
+ editor.putString(SettingsFragment.PREF_KEY_STARTUP_SCREEN, "arrivals");
+ edit=true;
+ }
+ //Fetchers
+ final Set setSelected = mainSharedPref.getStringSet(SettingsFragment.KEY_ARRIVALS_FETCHERS_USE, new HashSet<>());
+ if (setSelected.isEmpty()){
+ String[] defaultVals = getResources().getStringArray(R.array.arrivals_sources_values_default);
+ editor.putStringSet(SettingsFragment.KEY_ARRIVALS_FETCHERS_USE, utils.convertArrayToSet(defaultVals));
+ edit=true;
+ }
+ //Live bus positions
+ final String keySourcePositions=getString(R.string.pref_positions_source);
+ final String positionsSource = mainSharedPref.getString(keySourcePositions, "");
+ if(positionsSource.isEmpty()){
+ String[] defaultVals = getResources().getStringArray(R.array.positions_source_values);
+ editor.putString(keySourcePositions, defaultVals[0]);
+ edit=true;
+ }
+ //Map style
+ final String mapStylePref = mainSharedPref.getString(SettingsFragment.LIBREMAP_STYLE_PREF_KEY, "");
+ if(mapStylePref.isEmpty()){
+ final String[] defaultVals = getResources().getStringArray(R.array.map_style_pref_values);
+ editor.putString(SettingsFragment.LIBREMAP_STYLE_PREF_KEY, defaultVals[0]);
+ edit=true;
+ }
+ if (edit){
+ editor.apply();
+ }
+
+ }
}
diff --git a/app/src/main/java/it/reyboz/bustorino/adapters/PalinaAdapter.java b/app/src/main/java/it/reyboz/bustorino/adapters/PalinaAdapter.java
--- a/app/src/main/java/it/reyboz/bustorino/adapters/PalinaAdapter.java
+++ b/app/src/main/java/it/reyboz/bustorino/adapters/PalinaAdapter.java
@@ -19,6 +19,8 @@
import android.content.Context;
import android.content.res.Resources;
+import android.graphics.drawable.Drawable;
+import android.widget.ImageView;
import androidx.annotation.NonNull;
import androidx.cardview.widget.CardView;
import androidx.core.content.res.ResourcesCompat;
@@ -63,9 +65,9 @@
private static final int busBg = R.drawable.route_background_bus;
private static final int extraurbanoBg = R.drawable.route_background_bus_long_distance;
- private static final int busIcon = R.drawable.bus;
+ private static final int busIcon = R.drawable.ic_bus_small;
private static final int trainIcon = R.drawable.subway;
- private static final int tramIcon = R.drawable.tram;
+ private static final int tramIcon = R.drawable.ic_tram_24;
private final String KEY_CAPITALIZE;
private Capitalize capit;
@@ -123,7 +125,8 @@
}
vh.rowRouteDestination.setText(dest);
}
-
+ Drawable drawable = null;
+ final var resources = con.getResources();
switch (route.type) {
//UNKNOWN = BUS for the moment
case UNKNOWN:
@@ -131,28 +134,36 @@
default:
// convertView could contain another background, reset it
//vh.rowStopIcon.setBackgroundResource(busBg);
-
- vh.rowRouteDestination.setCompoundDrawablesWithIntrinsicBounds(busIcon, 0, 0, 0);
+ //drawable = ResourcesCompat.getDrawable(con.getResources(), busIcon, con.getTheme());
+ //vh.rowRouteDestination.setCompoundDrawablesWithIntrinsicBounds(busIcon, 0, 0, 0);
+ vh.busIcon.setImageDrawable(ResourcesCompat.getDrawable(resources, busIcon, con.getTheme()));
break;
case LONG_DISTANCE_BUS:
//vh.rowStopIcon.setBackgroundResource(extraurbanoBg);
vh.routeCard.setCardBackgroundColor(ResourcesCompat.getColor(res, R.color.extraurban_bus_bg, null));
- vh.rowRouteDestination.setCompoundDrawablesWithIntrinsicBounds(busIcon, 0, 0, 0);
+ vh.busIcon.setImageDrawable(ResourcesCompat.getDrawable(resources, extraurbanoBg, con.getTheme()));
break;
case METRO:
//vh.rowStopIcon.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14);
//vh.rowStopIcon.setBackgroundResource(metroBg);
vh.routeIDTextView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14);
vh.routeCard.setCardBackgroundColor(ResourcesCompat.getColor(res, R.color.metro_bg, null));
- vh.rowRouteDestination.setCompoundDrawablesWithIntrinsicBounds(trainIcon, 0, 0, 0);
+ // vh.rowRouteDestination.setCompoundDrawablesWithIntrinsicBounds(trainIcon, 0, 0, 0);
+ vh.busIcon.setImageDrawable(ResourcesCompat.getDrawable(resources, trainIcon, con.getTheme()));
break;
case RAILWAY:
//vh.rowStopIcon.setBackgroundResource(busBg);
- vh.rowRouteDestination.setCompoundDrawablesWithIntrinsicBounds(trainIcon, 0, 0, 0);
+ //vh.rowRouteDestination.setCompoundDrawablesWithIntrinsicBounds(trainIcon, 0, 0, 0);
+ vh.busIcon.setImageDrawable(ResourcesCompat.getDrawable(resources, trainIcon, con.getTheme()));
break;
case TRAM: // never used but whatever.
//vh.rowStopIcon.setBackgroundResource(busBg);
- vh.rowRouteDestination.setCompoundDrawablesWithIntrinsicBounds(tramIcon, 0, 0, 0);
+ drawable = ResourcesCompat.getDrawable(resources, trainIcon, con.getTheme());
+ assert drawable != null;
+ drawable.setTint(resources.getColor(R.color.black_icon_text, con.getTheme()) );
+ //vh.rowRouteDestination.setCompoundDrawablesWithIntrinsicBounds(tramIcon, 0, 0, 0);
+ vh.busIcon.setImageDrawable(ResourcesCompat.getDrawable(resources, tramIcon, con.getTheme()));
+
break;
}
@@ -181,19 +192,15 @@
final CardView routeCard;
final TextView rowRouteDestination;
final TextView rowRouteTimetable;
+ final ImageView busIcon;
public PalinaViewHolder(@NonNull @NotNull View view) {
super(view);
- /*
- convertView.findViewById(R.id.routeID);
- vh.rowRouteDestination = (TextView) convertView.findViewById(R.id.routeDestination);
- vh.rowRouteTimetable = (TextView) convertView.findViewById(R.id.routesThatStopHere);
- */
- //rowStopIcon = view.findViewById(R.id.routeID);
routeIDTextView = view.findViewById(R.id.routeNameTextView);
routeCard = view.findViewById(R.id.routeCard);
rowRouteDestination = view.findViewById(R.id.routeDestination);
rowRouteTimetable = view.findViewById(R.id.routesThatStopHere);
+ busIcon = view.findViewById(R.id.arrivalsBusIcon);
}
}
private static Capitalize getCapitalize(SharedPreferences shPr, String key){
diff --git a/app/src/main/java/it/reyboz/bustorino/adapters/SquareStopAdapter.java b/app/src/main/java/it/reyboz/bustorino/adapters/SquareStopAdapter.java
--- a/app/src/main/java/it/reyboz/bustorino/adapters/SquareStopAdapter.java
+++ b/app/src/main/java/it/reyboz/bustorino/adapters/SquareStopAdapter.java
@@ -17,7 +17,6 @@
*/
package it.reyboz.bustorino.adapters;
-import android.location.Location;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.DiffUtil;
import androidx.recyclerview.widget.RecyclerView;
@@ -28,7 +27,6 @@
import android.widget.TextView;
import it.reyboz.bustorino.R;
import it.reyboz.bustorino.backend.GPSPoint;
-import it.reyboz.bustorino.backend.RouteWithStop;
import it.reyboz.bustorino.backend.Stop;
import it.reyboz.bustorino.util.StopSorterByDistance;
import it.reyboz.bustorino.fragments.FragmentListenerMain;
@@ -37,7 +35,7 @@
import java.util.List;
public class SquareStopAdapter extends RecyclerView.Adapter {
- private final static int layoutRes = R.layout.stop_card;
+ private final static int layoutRes = R.layout.item_stop_nearby_card;
//private List stops;
private @Nullable GPSPoint userPosition;
private FragmentListenerMain listener;
diff --git a/app/src/main/java/it/reyboz/bustorino/adapters/StopAdapter.java b/app/src/main/java/it/reyboz/bustorino/adapters/StopAdapter.java
--- a/app/src/main/java/it/reyboz/bustorino/adapters/StopAdapter.java
+++ b/app/src/main/java/it/reyboz/bustorino/adapters/StopAdapter.java
@@ -18,6 +18,7 @@
package it.reyboz.bustorino.adapters;
import android.content.Context;
+import android.widget.ImageView;
import androidx.annotation.NonNull;
import android.view.LayoutInflater;
import android.view.View;
@@ -36,18 +37,25 @@
public class StopAdapter extends ArrayAdapter {
private LayoutInflater li;
private static final int row_layout = R.layout.entry_bus_stop;
- private static final int busIcon = R.drawable.bus;
+ private static final int busIcon = R.drawable.ic_bus;
private static final int trainIcon = R.drawable.subway;
private static final int tramIcon = R.drawable.tram;
private static final int cityIcon = R.drawable.city;
private static class ViewHolder {
- TextView busStopIDTextView;
- TextView busStopNameTextView;
+ final TextView busStopIDTextView;
+ final TextView busStopNameTextView;
//TextView busLineVehicleIcon;
- TextView busStopLinesTextView;
- TextView busStopLocaLityTextView;
+ final TextView busStopLinesTextView;
+ final TextView busStopLocaLityTextView;
+
+ ViewHolder(View view) {
+ busStopIDTextView = view.findViewById(R.id.busStopID);
+ busStopNameTextView = view.findViewById(R.id.busStopName);
+ busStopLinesTextView = view.findViewById(R.id.routesThatStopHere);
+ busStopLocaLityTextView = view.findViewById(R.id.busStopLocality);
+ }
}
public StopAdapter(Context context, List stops) {
@@ -62,11 +70,7 @@
if(convertView == null) {
convertView = li.inflate(row_layout, null);
- vh = new ViewHolder();
- vh.busStopIDTextView = (TextView) convertView.findViewById(R.id.busStopID);
- vh.busStopNameTextView = (TextView) convertView.findViewById(R.id.busStopName);
- vh.busStopLinesTextView = (TextView) convertView.findViewById(R.id.routesThatStopHere);
- vh.busStopLocaLityTextView = (TextView) convertView.findViewById(R.id.busStopLocality);
+ vh = new ViewHolder(convertView);
convertView.setTag(vh);
} else {
vh = (ViewHolder) convertView.getTag();
@@ -85,8 +89,10 @@
vh.busStopLinesTextView.setVisibility(View.VISIBLE); // might be GONE due to View Holder Pattern
}
+ /*
+ // DEPRECATED CODE: ALWAYS USE BUS STOP ICON
if(stop.type == null) {
- vh.busStopLinesTextView.setCompoundDrawablesWithIntrinsicBounds(busIcon, 0, 0, 0);
+ //vh.busStopLinesTextView.setCompoundDrawablesWithIntrinsicBounds(busIcon, 0, 0, 0);
} else {
switch(stop.type) {
case BUS:
@@ -106,6 +112,8 @@
}
}
+ */
+
if (stop.location == null) {
vh.busStopLocaLityTextView.setVisibility(View.GONE);
} else {
diff --git a/app/src/main/java/it/reyboz/bustorino/adapters/StopRecyclerAdapter.java b/app/src/main/java/it/reyboz/bustorino/adapters/StopRecyclerAdapter.java
--- a/app/src/main/java/it/reyboz/bustorino/adapters/StopRecyclerAdapter.java
+++ b/app/src/main/java/it/reyboz/bustorino/adapters/StopRecyclerAdapter.java
@@ -37,7 +37,7 @@
private List stops;
private static final int ITEM_LAYOUT_FAVORITES = R.layout.entry_bus_stop;
private static final int ITEM_LAYOUT_LINES = R.layout.stop_line_element;
- private static final int busIcon = R.drawable.bus;
+ private static final int busIcon = R.drawable.ic_bus;
private static final int trainIcon = R.drawable.subway;
private static final int tramIcon = R.drawable.tram;
private static final int cityIcon = R.drawable.city;
@@ -174,6 +174,8 @@
vh.busStopLinesTextView.setText(whatStopsHere);
vh.busStopLinesTextView.setVisibility(View.VISIBLE); // might be GONE due to View Holder Pattern
}
+ /*
+ //This is deprecated, always showing a bus
if(stop.type == null) {
vh.busStopLinesTextView.setCompoundDrawablesWithIntrinsicBounds(busIcon, 0, 0, 0);
@@ -196,6 +198,8 @@
}
}
+ */
+
if (stop.location == null || stop.location.toLowerCase(Locale.ROOT).equals("null")) {
vh.busStopLocaLityTextView.setVisibility(View.GONE);
} else {
diff --git a/app/src/main/java/it/reyboz/bustorino/backend/KotlinUtils.kt b/app/src/main/java/it/reyboz/bustorino/backend/KotlinUtils.kt
new file mode 100644
--- /dev/null
+++ b/app/src/main/java/it/reyboz/bustorino/backend/KotlinUtils.kt
@@ -0,0 +1,13 @@
+package it.reyboz.bustorino.backend
+
+import android.content.Context
+import android.content.res.Configuration
+
+object KotlinUtils {
+
+ @JvmStatic
+ fun isDarkTheme(context: Context): Boolean {
+ val uiMode = context.resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK
+ return uiMode == Configuration.UI_MODE_NIGHT_YES
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/reyboz/bustorino/data/GtfsMaintenanceWorker.kt b/app/src/main/java/it/reyboz/bustorino/data/GtfsMaintenanceWorker.kt
--- a/app/src/main/java/it/reyboz/bustorino/data/GtfsMaintenanceWorker.kt
+++ b/app/src/main/java/it/reyboz/bustorino/data/GtfsMaintenanceWorker.kt
@@ -32,7 +32,7 @@
val notification = NotificationCompat.Builder(context, Notifications.DB_UPDATE_CHANNELS_ID)
//.setContentIntent(PendingIntent.getActivity(context, 0, Intent(context, MainActivity::class.java), Constants.PENDING_INTENT_FLAG_IMMUTABLE))
- .setSmallIcon(R.drawable.bus)
+ .setSmallIcon(R.drawable.ic_bus)
.setOngoing(true)
.setAutoCancel(true)
.setOnlyAlertOnce(true)
diff --git a/app/src/main/java/it/reyboz/bustorino/data/PreferencesHolder.java b/app/src/main/java/it/reyboz/bustorino/data/PreferencesHolder.java
--- a/app/src/main/java/it/reyboz/bustorino/data/PreferencesHolder.java
+++ b/app/src/main/java/it/reyboz/bustorino/data/PreferencesHolder.java
@@ -20,11 +20,13 @@
import android.content.Context;
import android.content.SharedPreferences;
import androidx.annotation.NonNull;
+import androidx.appcompat.app.AppCompatDelegate;
import it.reyboz.bustorino.R;
import static android.content.Context.MODE_PRIVATE;
import androidx.preference.PreferenceManager;
+import it.reyboz.bustorino.backend.KotlinUtils;
import it.reyboz.bustorino.fragments.SettingsFragment;
import it.reyboz.bustorino.map.MapLibreUtils;
@@ -42,6 +44,9 @@
public static final String DB_LAST_UPDATE_KEY = "NextGenDB.LastDBUpdate";
public static final String PREF_FAVORITE_LINES = "pref_favorite_lines";
+ // match the one in preferences.xml
+ public static final String PREF_THEME_DAY_NIGHT = "app_theme_day_night";
+
public static final Set KEYS_MERGE_SET = Set.of(PREF_FAVORITE_LINES);
public static final Set IGNORE_KEYS_LOAD_MAIN = Set.of(PREF_GTFS_DB_VERSION, PREF_INTRO_ACTIVITY_RUN, DB_GTT_VERSION_KEY, DB_LAST_UPDATE_KEY);
@@ -98,11 +103,28 @@
public static String getMapLibreStyleFile(Context con){
final SharedPreferences pref = getAppPreferences(con);
final String mapStyle_val = pref.getString(SettingsFragment.LIBREMAP_STYLE_PREF_KEY, "");
- return switch (mapStyle_val) {
+ final boolean isNightMode = KotlinUtils.isDarkTheme(con);
+ String styleFile;
+ switch (mapStyle_val) {
//MUST MATCH IN keys.xml -> map_style_pref_values
- case "versatiles_c" -> MapLibreUtils.STYLE_VERSATILES_COLORFUL_JSON;
- case "osm_legacy" -> MapLibreUtils.STYLE_OSM_RASTER;
- default -> MapLibreUtils.getDefaultStyleJson();
+ case "osm_legacy":
+ styleFile = MapLibreUtils.STYLE_OSM_RASTER;
+ break;
+ case "versatiles_c":
+ default:
+ styleFile = (isNightMode) ? MapLibreUtils.STYLE_VERSATILES_ECLIPSE_JSON : MapLibreUtils.STYLE_VERSATILES_COLORFUL_JSON;
+ }
+ return styleFile;
+ }
+
+ public static Integer getAppThemeDayNight(Context context){
+ final SharedPreferences pref = getAppPreferences(context);
+ final var value = pref.getString(PREF_THEME_DAY_NIGHT, "");
+ return switch (value){
+ case "day" -> AppCompatDelegate.MODE_NIGHT_NO;
+ case "night" -> AppCompatDelegate.MODE_NIGHT_YES;
+ case "system" -> AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM;
+ default -> AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM;
};
}
}
diff --git a/app/src/main/java/it/reyboz/bustorino/fragments/GeneralMapLibreFragment.kt b/app/src/main/java/it/reyboz/bustorino/fragments/GeneralMapLibreFragment.kt
--- a/app/src/main/java/it/reyboz/bustorino/fragments/GeneralMapLibreFragment.kt
+++ b/app/src/main/java/it/reyboz/bustorino/fragments/GeneralMapLibreFragment.kt
@@ -673,7 +673,7 @@
ResourcesCompat.getDrawable(resources, R.drawable.ic_magnifying_glass, activity?.theme)
)
// if you change this, remember to change the color of the vehicleIcon
- val colorBlue = ResourcesCompat.getColor(resources, R.color.blue_500, activity?.theme)
+ val colorBlue = ResourcesCompat.getColor(resources, R.color.bus_marker_color_selected, activity?.theme)
ViewCompat.setBackgroundTintList(directionsCard, ColorStateList.valueOf(colorBlue))
linesPassingTextView.text = getString(R.string.vehicle_fill, data.posUpdate.vehicle)
arrivalsCard.visibility = View.GONE
@@ -846,7 +846,7 @@
ViewUtils.openStopInOutsideApp(stop, context)
}
context?.let {
- val colorIcon = ViewUtils.getColorFromTheme(it, android.R.attr.colorAccent)//ResourcesCompat.getColor(resources,R.attr.colorAccent,activity?.theme)
+ val colorIcon = ViewUtils.getColorFromTheme(it, R.attr.colorAccent)//ResourcesCompat.getColor(resources,R.attr.colorAccent,activity?.theme)
ViewCompat.setBackgroundTintList(directionsCard, ColorStateList.valueOf(colorIcon))
}
@@ -905,12 +905,17 @@
protected fun initStopsLayer(style: Style, stopsFeatures: FeatureCollection?){
//determine default layer
- var layerAbove = ""
- if (lastMapStyle == MapLibreUtils.STYLE_OSM_RASTER){
- layerAbove = "osm-raster"
- } else if (lastMapStyle == MapLibreUtils.STYLE_VECTOR){
- layerAbove = "symbol-transit-airfield"
+
+ val layerAbove = if (lastMapStyle == MapLibreUtils.STYLE_OSM_RASTER){
+ "osm-raster"
+ } else// if (lastMapStyle == MapLibreUtils.STYLE_VERSATILES_ECLIPSE_JSON){
+ "symbol-transit-airfield"
+ /*} else {
+ //
+ "poi_park"
}
+
+ */
initStopsLayer(style, stopsFeatures, layerAbove)
}
diff --git a/app/src/main/java/it/reyboz/bustorino/map/MapLibreUtils.kt b/app/src/main/java/it/reyboz/bustorino/map/MapLibreUtils.kt
--- a/app/src/main/java/it/reyboz/bustorino/map/MapLibreUtils.kt
+++ b/app/src/main/java/it/reyboz/bustorino/map/MapLibreUtils.kt
@@ -18,13 +18,21 @@
companion object{
//const val STYLE_BRIGHT_DEFAULT_JSON = "map_style_good_noshops.json"
const val STYLE_VERSATILES_COLORFUL_JSON = "versatiles_colorful_light.json"
+ const val STYLE_VERSATILES_ECLIPSE_JSON = "versatiles_eclipse_neutral_to90.json" //"versatiles_eclipse.json"
const val STYLE_OSM_RASTER="openstreetmap_raster.json"
- const val STYLE_VECTOR = STYLE_VERSATILES_COLORFUL_JSON
private const val DEBUG_TAG ="BusTO-MapLibreUtils"
@JvmStatic
- fun getDefaultStyleJson() = STYLE_VECTOR
+ fun isStyleVector(styleFile: String): Boolean {
+ return when(styleFile){
+ //be careful to include all the style cases
+ STYLE_OSM_RASTER -> false
+ STYLE_VERSATILES_COLORFUL_JSON -> true
+ STYLE_VERSATILES_ECLIPSE_JSON -> true
+ else -> true
+ }
+ }
@JvmStatic
fun shortestRotation(from: Float, to: Float): Float {
diff --git a/app/src/main/java/it/reyboz/bustorino/middleware/GeneralActivity.java b/app/src/main/java/it/reyboz/bustorino/middleware/GeneralActivity.java
--- a/app/src/main/java/it/reyboz/bustorino/middleware/GeneralActivity.java
+++ b/app/src/main/java/it/reyboz/bustorino/middleware/GeneralActivity.java
@@ -231,44 +231,4 @@
return WindowInsetsCompat.CONSUMED;
};
- /**
- * Adjust setting to match the default ones
- */
- protected void checkApplyDefaultSettingsValues(){
- SharedPreferences mainSharedPref = PreferenceManager.getDefaultSharedPreferences(this);
- SharedPreferences.Editor editor = mainSharedPref.edit();
- //Main fragment to show
- String screen = mainSharedPref.getString(SettingsFragment.PREF_KEY_STARTUP_SCREEN, "");
- boolean edit = false;
- if (screen.isEmpty()){
- editor.putString(SettingsFragment.PREF_KEY_STARTUP_SCREEN, "arrivals");
- edit=true;
- }
- //Fetchers
- final Set setSelected = mainSharedPref.getStringSet(SettingsFragment.KEY_ARRIVALS_FETCHERS_USE, new HashSet<>());
- if (setSelected.isEmpty()){
- String[] defaultVals = getResources().getStringArray(R.array.arrivals_sources_values_default);
- editor.putStringSet(SettingsFragment.KEY_ARRIVALS_FETCHERS_USE, utils.convertArrayToSet(defaultVals));
- edit=true;
- }
- //Live bus positions
- final String keySourcePositions=getString(R.string.pref_positions_source);
- final String positionsSource = mainSharedPref.getString(keySourcePositions, "");
- if(positionsSource.isEmpty()){
- String[] defaultVals = getResources().getStringArray(R.array.positions_source_values);
- editor.putString(keySourcePositions, defaultVals[0]);
- edit=true;
- }
- //Map style
- final String mapStylePref = mainSharedPref.getString(SettingsFragment.LIBREMAP_STYLE_PREF_KEY, "");
- if(mapStylePref.isEmpty()){
- final String[] defaultVals = getResources().getStringArray(R.array.map_style_pref_values);
- editor.putString(SettingsFragment.LIBREMAP_STYLE_PREF_KEY, defaultVals[0]);
- edit=true;
- }
- if (edit){
- editor.commit();
- }
-
- }
}
diff --git a/app/src/main/res/drawable/bottom_sheet_background.xml b/app/src/main/res/drawable/bottom_sheet_background.xml
--- a/app/src/main/res/drawable/bottom_sheet_background.xml
+++ b/app/src/main/res/drawable/bottom_sheet_background.xml
@@ -1,7 +1,7 @@
-
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bus_stop_new.xml b/app/src/main/res/drawable/bus_stop_new.xml
--- a/app/src/main/res/drawable/bus_stop_new.xml
+++ b/app/src/main/res/drawable/bus_stop_new.xml
@@ -12,10 +12,10 @@
+ android:fillColor="@color/white"/>
diff --git a/app/src/main/res/drawable/bus_stop_new_highlight.xml b/app/src/main/res/drawable/bus_stop_new_highlight.xml
--- a/app/src/main/res/drawable/bus_stop_new_highlight.xml
+++ b/app/src/main/res/drawable/bus_stop_new_highlight.xml
@@ -9,13 +9,14 @@
android:strokeWidth="0.0936408"
android:fillColor="?colorAccent"
android:strokeColor="#00000000"/>
+
+ android:fillColor="@color/white"/>
diff --git a/app/src/main/res/drawable/ic_bus.xml b/app/src/main/res/drawable/ic_bus.xml
new file mode 100644
--- /dev/null
+++ b/app/src/main/res/drawable/ic_bus.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_bus_stilized.xml b/app/src/main/res/drawable/ic_bus_stilized.xml
--- a/app/src/main/res/drawable/ic_bus_stilized.xml
+++ b/app/src/main/res/drawable/ic_bus_stilized.xml
@@ -4,6 +4,6 @@
android:viewportWidth="48"
android:viewportHeight="48">
diff --git a/app/src/main/res/drawable/magnifying_glass_larger.xml b/app/src/main/res/drawable/magnifying_glass_larger.xml
--- a/app/src/main/res/drawable/magnifying_glass_larger.xml
+++ b/app/src/main/res/drawable/magnifying_glass_larger.xml
@@ -6,5 +6,5 @@
+ android:fillColor="@color/white"/>
diff --git a/app/src/main/res/drawable/map_bus_position_icon_sel.xml b/app/src/main/res/drawable/map_bus_position_icon_sel.xml
--- a/app/src/main/res/drawable/map_bus_position_icon_sel.xml
+++ b/app/src/main/res/drawable/map_bus_position_icon_sel.xml
@@ -1,7 +1,7 @@
-
diff --git a/app/src/main/res/layout/activity_principal.xml b/app/src/main/res/layout/activity_principal.xml
--- a/app/src/main/res/layout/activity_principal.xml
+++ b/app/src/main/res/layout/activity_principal.xml
@@ -41,15 +41,14 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
- android:background="@color/grey_050"
- android:theme="@style/ThemeOverlay.AppCompat.Light"
+ android:theme="@style/ThemeOverlay.AppCompat.DayNight"
app:headerLayout="@layout/nav_header"
app:itemIconTint="@color/teal_500"
app:itemTextAppearance="?android:attr/textAppearanceMedium"
- app:itemTextColor="@color/black_900"
+ app:itemTextColor="@color/black_icon_text"
android:fitsSystemWindows="true"
app:menu="@menu/drawer_main" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/entry_alert_line_adapter.xml b/app/src/main/res/layout/entry_alert_line_adapter.xml
--- a/app/src/main/res/layout/entry_alert_line_adapter.xml
+++ b/app/src/main/res/layout/entry_alert_line_adapter.xml
@@ -22,7 +22,7 @@
android:textStyle="bold"
android:textSize="17sp"
android:fontFamily="@font/lato_bold"
- android:textColor="@color/black_900"
+ android:textColor="?android:textColorPrimary"
android:text="Alerts for line"
android:layout_alignParentTop="true"
android:layout_marginBottom="5dp"
@@ -35,10 +35,10 @@
android:id="@+id/messageBodyTextView"
android:textSize="16sp"
android:fontFamily="@font/lato_regular"
- android:textColor="@color/black_900"
+ android:textColor="?android:textColorPrimary"
android:text="Alert text"
android:layout_below="@id/messageTitleTextView"
/>
\ No newline at end of file
diff --git a/app/src/main/res/layout/entry_bus_line_passage.xml b/app/src/main/res/layout/entry_bus_line_passage.xml
--- a/app/src/main/res/layout/entry_bus_line_passage.xml
+++ b/app/src/main/res/layout/entry_bus_line_passage.xml
@@ -50,6 +50,17 @@
+
+ #0b6fc1
+ #bfbfbf
+
+ #1a4db2
+
+ #1d56c8
+
+ #c34322
+
+ #861313
+
+ #3657b0
+ #2270c3
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml
new file mode 100644
--- /dev/null
+++ b/app/src/main/res/values-night/themes.xml
@@ -0,0 +1,11 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -14,6 +14,12 @@
#8A4247
#FFF3E0
+
+ #e08700
+
+
+ #d16900
+
#2378e8
#0079f5
#2a968b
@@ -25,7 +31,10 @@
#228b22
#0ABA34
- #009688
+ #009688
+ #00a38d
+ #009480
+ #00a887
#4DB6AC
#80cbc4
#008175
@@ -59,11 +68,14 @@
@color/red_dark
@color/blue_extra
+ #3089e8
#FF039BE5
#FF01579B
#FF40C4FF
#FF00B0FF
#66000000
+ #666666
+ #cccccc
#00000000
@@ -74,4 +86,6 @@
@color/orange_icons_10light
@color/grey_400
@color/orange_750_l45
+
+ @color/blue_700
\ No newline at end of file
diff --git a/app/src/main/res/values/keys.xml b/app/src/main/res/values/keys.xml
--- a/app/src/main/res/values/keys.xml
+++ b/app/src/main/res/values/keys.xml
@@ -40,4 +40,17 @@
- osm_legacy
+
+
+ - day
+ - night
+ - system
+
+
+
+ - @string/day_night_theme_set_light
+ - @string/day_night_theme_set_dark
+ - @string/day_night_theme_keep_system
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -299,6 +299,14 @@
- @string/nav_map_text
- @string/lines
+
+
+ Light
+ Dark
+ Follow system
+
+
+ Choose theme to use (requires restart)
Source of real time positions for buses and trams
MaTO (updated more frequently, might have errors)
GTFS RT (less frequently updated, more accurate)
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -71,7 +71,23 @@
+
-
-